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..
Örnek dosya eklerseniz cevap alma ihtimaliniz artar.
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.