Bestimmten Text aus einer Datei per Button entfernen

  • VB.NET

Es gibt 15 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Bestimmten Text aus einer Datei per Button entfernen

    Hey.

    Ich möchte ein Programm für mich erstellen womit man per Button eine Seite sperren kann und mit einem weiteren Button eine Seite wieder entsperren kann.

    Folgenden Code benutze ich zum sperren:

    VB.NET-Quellcode

    1. Public Class Form3
    2. Dim arrEndings() As String = {".de;.com;.net;.org;.it;.tk;.at;.uk;.nl;.pl;.fr;.dk;.no;.ch;.es;.pt;.biz;.info;.to;.tv;.cc;.es"}
    3. Dim bAlreadyAdded As Boolean = False
    4. Dim sHostfilepath As String = "C:\Windows\System32\drivers\etc\hosts"
    5. Dim Hosts As String = IO.File.ReadAllText(sHostfilepath)
    6. Sub AddToDefensePlan(ByVal HostToAdd As String)
    7. Hosts = Hosts & vbNewLine & "127.0.0.0 " & HostToAdd
    8. IO.File.WriteAllText("C:\Windows\System32\drivers\etc\hosts", Hosts)
    9. End Sub
    10. Private Sub ButtonX1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonX1.Click
    11. AddToDefensePlan(TextBoxX1.Text)
    12. End Sub



    Wie kann ich eine Seite die ich in der TextBox eingebe nun wieder per Button entfernen?

    Geht das auch irgendwie mit IO.File.Delete("Pfad, Hosts) ?

    Bitte helft mir
    Eine Endung oder eine Seite?
    So wie ich das verstehe, hast du doch dann in der Hosts
    nur Endungen, oder bin ich nur zu müde?


    Bin zu müde. Du liest die Datei aus und entfernst per String.Remove
    den String "127.0.0.1 " & TextBox1.Text & VbNewLine. Dann speicherst du die
    Datei einfach wieder.

    Zu TextBoxx1: Bitte keine DevComponents. Die können zwar schick aussehen, sind aber wahrscheinlich nicht gekauft, und werden oft falsch angewendet (grafisch).

    String.Remove = MSDN

    Grüße
    "Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero

    Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Nikx“ ()

    Wie mache ich das? Ich bin ein totaler Anfänger in VB.
    Ich habe das Programm mit einer Anleitung für mich selbst geschrieben
    und da wurde eben nicht gezeigt wie man das ganze wieder entfernt :(

    Es wurde zum entfernen einfach nur

    VB.NET-Quellcode

    1. Process.Start(sHostfilepath)

    verwendet um die Adresse manuell zu entfernen, möchte das aber gerne wie
    beim hinzufügen auch per Buttonklick direkt entfernen lassen. :(

    VB.NET-Quellcode

    1. Dim hostsfile As String = New String("C:\Windows\System32\drivers\etc\hosts")
    2. Dim hostscontent As String = IO.File.ReadAllText(hostsfile)
    3. hostcontent.Remove("127.0.0.1 " & AdressTxtBox & vbNewLine)
    4. IO.File.WriteAllText("C:\Windows\System32\drivers\etc\hosts", hostscontent)


    Das ist jetzt rein ausm Kopf, ich bin zu faul das zu testen, sollte aber klappen.
    Musst du natürlich als Admin starten!

    Bin heute Sourcefreudig, kannste dich bedanken, bin normalerweise nicht so ein C&P-Typ.
    Bitte auch verstehen was du da machst, okay?

    Grüße
    "Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero

    Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!
    Sorry.

    VB.NET-Quellcode

    1. Dim hostsfile As String = New String("C:\Windows\System32\drivers\etc\hosts")
    2. Dim hostscontent As String = IO.File.ReadAllText(hostsfile)
    3. hostcontent.Replace("127.0.0.1 " & AdressTxtBox & vbNewLine, "")
    4. IO.File.WriteAllText("C:\Windows\System32\drivers\etc\hosts", hostscontent)
    "Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero

    Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!
    Versuch das ganze mal mit einer TextDatei auf dem Desktop, ich denke mal
    es sind doch Zugriffsprobleme. Beeil dich, ich geh gleich schlafen :D
    "Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero

    Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!
    @Creatiive:

    Es funktioniert bei mir problemlos:

    VB.NET-Quellcode

    1. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    2. Dim Content As String = New String(IO.File.ReadAllText(IO.Path.Combine(Application.StartupPath, "hosts.txt")))
    3. Content = Content & vbNewLine & "127.0.0.1 " & TextBox1.Text
    4. IO.File.WriteAllText(IO.Path.Combine(Application.StartupPath, "hosts.txt"), Content)
    5. End Sub
    6. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    7. End Sub
    8. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    9. Dim Content As String = New String(IO.File.ReadAllText(IO.Path.Combine(Application.StartupPath, "hosts.txt")))
    10. Content = Content.Replace(vbNewLine & "127.0.0.1 " & TextBox1.Text, "")
    11. IO.File.WriteAllText(IO.Path.Combine(Application.StartupPath, "hosts.txt"), Content)
    12. End Sub
    "Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero

    Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!

    VB.NET-Quellcode

    1. hostcontent.Replace("127.0.0.1 " & AdressTxtBox & vbNewLine, "")

    Creatiive schrieb:

    die URL wird aber nicht aus der Datei entfernt.
    Mit welchem Quelltext versuchst Du denn, Text zu entfernen?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @RodFromGermany:

    Bezog sich das hetzt auf mich oder auf Creatiive?
    Falls auf mich, ich bin halt zu faul es besser zu lösen ;)

    Du kannst es ja auch so machen:

    VB.NET-Quellcode

    1. Content = Content.Remove(Content.LastIndexOf((vbNewLine & "127.0.0.1 " & TextBox1.Text)))


    Grüße
    "Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero

    Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!

    Nikx schrieb:

    Bezog sich das hetzt auf mich oder auf Creatiive?
    Nicht auf Dich, deswegen hab ich auch Deinen Namen aus dem Zitat rausgemacht. :D
    Ich denke, er sucht den falschen String.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Achso :D

    Ja kann sein, bei mir funktioniert es jedenfalls ohne Probleme.
    Ich denke es tritt ein Zugriffsfehler auf, oder du machst irgendwas mit String/Pfaden falsch.

    Nimm jedes Try-Catch raus.
    Lass dir Variablen zwischenzeitlich ausgeben.
    Und schalte mal Option Strict auf On.

    Grüße
    "Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero

    Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!
    Setz einen Haltepunkt drauf und überzeuge Dich, dass der gesuchte String tatsächlich der ist, für den Du ihn hältst.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!