none
C# da txt dosyasında istenen satırların silinmesi ve yeni satırların eklenmesini nasıl yapabilirim? RRS feed

  • Soru

  • C# da txt dosyasında istenen satırların silinmesi ve yeni satırların eklenmesini nasıl yapabilirim?

    silmek için yazdığım program:

     private void sil()
            {
                string sil_bilgisi;
                string n = "";
                string silbil_al = comboBox1.Text;
                StreamReader sil_oku = new StreamReader(@"c:\users\tamer\documents\visual studio 2015\Projects\not_defteri_yazma\not_defteri_yazma\referanss.txt");
                while ((sil_bilgisi = sil_oku.ReadLine()) != null)
                {
                    
                    if (sil_bilgisi == silbil_al)
                    {
                        while ((sil_bilgisi = sil_oku.ReadLine()) != "#")
                        {
                            n += Environment.NewLine;//bu kodda yanlışlık var.
                        }
                        sil_oku.Close();
                        File.WriteAllText(@"c:\users\tamer\documents\visual studio 2015\Projects\not_defteri_yazma\not_defteri_yazma\referanss.txt", n);
                        //while ((sil_bilgisi = sil_oku.ReadLine()).StartsWith("Referans")!=true)
                        //{
                        //    sil_bilgisi.Remove(0, 2);
    
                        //}
                        break;
                    }
    
    
                }
                sil_oku.Close();
    
            }

    14 Haziran 2017 Çarşamba 17:24

Yanıtlar

  • 1.Dosya var ise olduğu gibi silersin ve dosyayı yeniden yazarsın ve aradaki satırları seçerek uğraşmadan silmiş olursun.
    2.Dosyayı çekip bir BindingSource içerisine yada List e atarsın ve daha sonra indexlere göre silme yapıp dosyaya yeniden yazarsın indexe göre sileceğin için ara boşluklar kalmaz dosya içerisinde.
    3.Dosyaya veri yazarken zaten newline komutunu kullanırsan satırları kendi ekliyor aşağıya doğru.


    14 Haziran 2017 Çarşamba 22:19

Tüm Yanıtlar

  • TextReader tReader = new StreamReader("DosyaYoluVeAdı");
    string okunan = tReader.ReadToEnd();
    tReader.Close();
    okunan = okunan.Replace(comboBox1.Text, "");
    TextWriter tWriter = new StreamWriter("DosyaYoluVeAdı");
    tWriter.Write(okunan);
    tWriter.Flush();
    tWriter.Close();


    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    14 Haziran 2017 Çarşamba 21:53
  • 1.Dosya var ise olduğu gibi silersin ve dosyayı yeniden yazarsın ve aradaki satırları seçerek uğraşmadan silmiş olursun.
    2.Dosyayı çekip bir BindingSource içerisine yada List e atarsın ve daha sonra indexlere göre silme yapıp dosyaya yeniden yazarsın indexe göre sileceğin için ara boşluklar kalmaz dosya içerisinde.
    3.Dosyaya veri yazarken zaten newline komutunu kullanırsan satırları kendi ekliyor aşağıya doğru.


    14 Haziran 2017 Çarşamba 22:19
  • Merhabalar cevabınız için teşekkürler. Aslında yapmak istediğim txt dosyasının tam ortasında bulunan satırları düzeltme işlemi yapmak belkide yeni bir kaç satır bile ekleme işlemi bile gerekecek. Yukarıda ki komutlar tek satır değişimi için dimi.

    Ddsdasdsa

    18 Haziran 2017 Pazar 11:50
  • Cevabınız için teşekkürler. 1. önerdiğiniz bilgiyi uygulayacağım.

    Ddsdasdsa

    18 Haziran 2017 Pazar 11:54
  • Yukarıdaki kodlarla kelime/satır silme, düzeltme veya ekleme yapabilirsiniz...

    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    18 Haziran 2017 Pazar 13:16
  • Örnek: Notpad de yazılı olanlar,

    Referans1
    1
    2
    #
    Referans2
    3
    8
    10
    #
    Referans3
    ... diye gidiyor. Ben burda referans 2 veya combobox  da kullanıcının seçtiği referans bilgisi ya düzeltilicek yada silme işlemi yaptırmak istiyorum.


    Ddsdasdsa

    20 Haziran 2017 Salı 16:48
  • Silinecekse yukarıdaki kodu olduğu gibi kullanın. Düzeltilecekse Replace metodunda ikinci parametreye boşluk yerine yeni metni yazın...

    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    20 Haziran 2017 Salı 17:02
  • Yanıtınız için teşekkürler Murat Bey, Örnekte silme işleminde boşluk satır kalır mı? Kalırsa okuma işlemini boşluğa kadar oku yapıyorum. Düzeltme işleminde de referans başlığı altına bir satır bilgi daha ekleme yapılabilir veya satırları silebilir o zaman nasıl bir yol izleyebilirim? String methodlarında da tüm satır silme işlemide yok galiba.

    Örn: 
    Referans2
    1
    2
    5
    6
    7
    # gibi kullanıcı ekleyebilir.


    Ddsdasdsa

    20 Haziran 2017 Salı 17:19
  • Kodu test edin. Boşluk kalmadığını göreceksiniz... Sadece satır başı ve yeni satır işaretleri varsa Replace(comboBox1.Text + "\r\n", "") şeklinde kullanın...

    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...


    20 Haziran 2017 Salı 17:38
  • merhaba Murat bey,

    verdiğiniz komutları denedim. txt de sadece Referans2 bilgisi siliniyor ve boşluk kalıyor. benim istediğim Referans2 bilgisinin altında kalan bilgilerde silinmesini istiyorum. referans3 e kadar.

    İyi çalışmalar. Teşekkürler.


    Ddsdasdsa

    22 Haziran 2017 Perşembe 17:24