So... wollte dir zwar schon vorhin schreiben, aber der Feierabend kam dazwischen ;P
Dein Code ist an sich schonmal nicht schlecht, jedoch für diesen Zweck eher leicht ungeeignet, daher geb' ich dir erstmal nur ein Paar Tipps, wie du das fummeln könntest - soll ja auch ein kleiner Lerneffekt bei rauskommen.
Zunächst einmal ist die etc/hosts eine zeilenbasierte Konfigurationsdatei. Das heisst, dass in jeder Zeile immer eine Anweisung steht - ich kann zwar nicht genau sagen, ob dies so beibehalten werden muss, aber sicher ist sicher. Außerdem wollen wir hier ja mit dem .NET Framework arbeiten, also sollten wir es auch benutzen, also statt My.Computer nehmen wir System.IO - soweit so gut.
Zuerst willst du ja ein Backup anlegen. Das machst du mit:
System.IO.File.Copy("[Quelldatei]","[Zieldatei]", True) Dann öffnest du dir das erstellte Backup zum lesen, und die /etc/hosts schreibend.
Dim objReader As New StreamReader("[Backupdatei]")
Dim objWriter As New StreamWriter("[Datei]") Nun gehst du durch die Datei durch und ziehst dir mit objReader.ReadLine immer nur eine Zeile in einen String, den du dann überprüfst. Liegt "l2authd.lineage2.com" drinne, dann machst du nichts, hat die Zeile nichts mit dir zu tun, dann schreibst du sie mit objWriter.Writeline in die Datei. Das durchlaufen bis zum Ende der Datei erreichst mit einer Do Loop-Schleife, die als Abbruchbedingung das Ende des Lesestreams beinhaltet.
Do Until objReader.EndOfStream
'hier die Abfrage rein
While Bist du komplett durch, dann kommen am Ende nur noch die Zeilen, die du in der Datei haben möchtest. Fertig ist.
Jetzt bleibt noch zu überlegen, ob du vielleicht nicht noch ein bisschen komfortabler und eleganter Arbeiten möchtest. Man könnte zum Beispiel, anstatt die ungewollten Zeilen zu löschen, jene auch auskommentieren - so spart man sich die Backupdatei. Sicherlich kann man auch die gesamte Funktion eleganter oder schöner schreiben, aber für den Anfang sollte es für dich reichen.
Viel Spass beim basteln.
--------------------
Ich habe keine besondere Begabung, sondern bin nur leidenschaftlich neugierig.
- Albert Einstein |