Skip to main content

AccessTr.neT


VB.NET Metin belgesi içinden istedigimiz satırı silmek.

VB.NET Metin belgesi içinden istedigimiz satırı silmek.

Thumbs Up #1
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..
.rar WindowsApplication1.rar (Dosya Boyutu: 63,68 KB | İndirme Sayısı: 7)
Son Düzenleme: 01/11/2016, 15:12, Düzenleyen: Mettless Dizayn.
Cevapla
#2
Örnek dosya eklerseniz cevap alma ihtimaliniz artar.
AccessTr.Net teknik konular içeren bir sitedir. Bu tip sitelerde en iyi şekilde yardım alabilmeniz için Site Kurallarını mutlaka okumanız ve buna göre hareket etmeniz lazım.
Cevapla
#3
(01/11/2016, 14:29)alpeki99 yazdı: Örnek dosya eklerseniz cevap alma ihtimaliniz artar.

Eklenmiştir.
Cevapla
#4
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.
AccessTr.Net teknik konular içeren bir sitedir. Bu tip sitelerde en iyi şekilde yardım alabilmeniz için Site Kurallarını mutlaka okumanız ve buna göre hareket etmeniz lazım.
Cevapla
#5
(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
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task