AccessTr.neT
VB.NET Metin belgesi içinden istedigimiz satırı silmek. - Baskı Önizleme

+- AccessTr.neT (https://accesstr.net)
+-- Forum: Visual Basic .NET (https://accesstr.net/forum-visual-basic-net.html)
+--- Forum: Visual Basic .NET Cevaplanmış Soruları (https://accesstr.net/forum-visual-basic-net-cevaplanmis-sorulari.html)
+--- Konu Başlığı: VB.NET Metin belgesi içinden istedigimiz satırı silmek. (/konu-vb-net-metin-belgesi-icinden-istedigimiz-satiri-silmek.html)



VB.NET Metin belgesi içinden istedigimiz satırı silmek. - Mettless Dizayn - 01/11/2016

Arkadaşlar Vb.net ile metin belgesi içine yazı kaydediyorum fakat Program içindeki TextBoxa mehmet yazdıgımda içinde mehmet geçen satırı silmesini istiyorum çok araştırdım fakat her hangi bişey bulamadım.. Yardımlarınızı bekliyorum..


Cvp: VB.NET Metin belgesi içinden istedigimiz satırı silmek. - alpeki99 - 01/11/2016

Örnek dosya eklerseniz cevap alma ihtimaliniz artar.


Cvp: VB.NET Metin belgesi içinden istedigimiz satırı silmek. - Mettless Dizayn - 01/11/2016

(01/11/2016, 14:29)alpeki99 yazdı: Örnek dosya eklerseniz cevap alma ihtimaliniz artar.

Eklenmiştir.


Cvp: VB.NET Metin belgesi içinden istedigimiz satırı silmek. - alpeki99 - 06/11/2016

Arada konu gözönünden kaçmış kusura bakmayın.

Programda ufak tefek değişiklikler yaptım. Button1 Click olayının kodları şu şekilde:


AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal)
   Dim mevcutIlke As WindowsPrincipal = DirectCast(Thread.CurrentPrincipal, WindowsPrincipal)

   ' continue programm
   If mevcutIlke.IsInRole("Administrators") Then

     Using dosya As StreamWriter = File.AppendText(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "drivers\etc\hosts"))

       dosya.WriteLine(TextBox1.Text)
       MsgBox("Satır eklendi")

     End Using

   Else

     MsgBox("Yönetici haklarınız yok. Programı yönetici hakları ile çalıştırmalısınız.")

   End If


Buton2 nin Click olayına aşağıdaki kodları yazacağız:

    Dim dosyaAdresi As String

   dosyaAdresi = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "drivers\etc\hosts")

   ArananSatirlariDosyadanSil(dosyaAdresi, TextBox2.Text)

Burada yer alan ArananSatirlariDosyadanSil bir prosedür. Dosyanın adresini ve aranan kelimeyi parametre olarak alıyor. Prosedürümüz şu şekilde olacak:

Private Sub ArananSatirlariDosyadanSil(ByVal dosyaAdresi As String, ByVal arananKelime As String)

   Dim okunanSatirlar() As String
   Dim temizlenenSatirlar As New List(Of String)

   okunanSatirlar = IO.File.ReadAllLines(dosyaAdresi)

   For Each satir As String In okunanSatirlar

     If satir.Contains(arananKelime) = False Then

       temizlenenSatirlar.Add(satir)

     End If

   Next

   File.Delete(dosyaAdresi)
   File.WriteAllLines(dosyaAdresi, temizlenenSatirlar)

 End Sub


Siz hosts dosyasında işlem yapmak istemişsiniz. Bu özel bir dosya olduğu için yönetici hakları olmadan çalışmayacaktır.


Cvp: VB.NET Metin belgesi içinden istedigimiz satırı silmek. - Mettless Dizayn - 22/11/2016

(06/11/2016, 23:14)alpeki99 yazdı: Arada konu gözönünden kaçmış kusura bakmayın.

Programda ufak tefek değişiklikler yaptım. Button1 Click olayının kodları şu şekilde:


AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal)
   Dim mevcutIlke As WindowsPrincipal = DirectCast(Thread.CurrentPrincipal, WindowsPrincipal)

   ' continue programm
   If mevcutIlke.IsInRole("Administrators") Then

     Using dosya As StreamWriter = File.AppendText(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "drivers\etc\hosts"))

       dosya.WriteLine(TextBox1.Text)
       MsgBox("Satır eklendi")

     End Using

   Else

     MsgBox("Yönetici haklarınız yok. Programı yönetici hakları ile çalıştırmalısınız.")

   End If


Buton2 nin Click olayına aşağıdaki kodları yazacağız:

    Dim dosyaAdresi As String

   dosyaAdresi = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "drivers\etc\hosts")

   ArananSatirlariDosyadanSil(dosyaAdresi, TextBox2.Text)

Burada yer alan ArananSatirlariDosyadanSil bir prosedür. Dosyanın adresini ve aranan kelimeyi parametre olarak alıyor. Prosedürümüz şu şekilde olacak:

Private Sub ArananSatirlariDosyadanSil(ByVal dosyaAdresi As String, ByVal arananKelime As String)

   Dim okunanSatirlar() As String
   Dim temizlenenSatirlar As New List(Of String)

   okunanSatirlar = IO.File.ReadAllLines(dosyaAdresi)

   For Each satir As String In okunanSatirlar

     If satir.Contains(arananKelime) = False Then

       temizlenenSatirlar.Add(satir)

     End If

   Next

   File.Delete(dosyaAdresi)
   File.WriteAllLines(dosyaAdresi, temizlenenSatirlar)

 End Sub


Siz hosts dosyasında işlem yapmak istemişsiniz. Bu özel bir dosya olduğu için yönetici hakları olmadan çalışmayacaktır.

Teşekkürler işime yaradı Img-grin