Discussion:
bestimmte Zeilen in einer Textdatei sind zu ändern
(zu alt für eine Antwort)
johannes
2003-12-18 10:32:15 UTC
Permalink
Hallo,

Ich muss in einer Textdatei bestimmte Zeilen ändern. Wie
kann ich VB.net Zeilen ansprechen?

Vilen Dank im Voraus
Johannes
Herfried K. Wagner [MVP]
2003-12-18 10:44:19 UTC
Permalink
Hallo Johannes!

* "johannes" <***@mail.ru> scripsit:
^^^^^^^^

Hier sollte der volle Name stehen.
Post by johannes
Ich muss in einer Textdatei bestimmte Zeilen ändern. Wie
kann ich VB.net Zeilen ansprechen?
Dazu musst du die Zeilen lesen, bearbeiten und wieder in die Datei
schreiben. Schau dir die Klassen im Namespace 'System.IO' an, vor Allem
'StreamReader' und 'StreamWriter' und deren Methoden 'Read*'.
--
Herfried K. Wagner [MVP]
<http://www.mvps.org/dotnet>
Stephanie Glahs
2003-12-19 07:18:36 UTC
Permalink
Post by Herfried K. Wagner [MVP]
Post by johannes
Ich muss in einer Textdatei bestimmte Zeilen ändern. Wie
kann ich VB.net Zeilen ansprechen?
Dazu musst du die Zeilen lesen, bearbeiten und wieder in die Datei
schreiben. Schau dir die Klassen im Namespace 'System.IO' an, vor Allem
'StreamReader' und 'StreamWriter' und deren Methoden 'Read*'.
Also ich möchte dem noch hinzufügen, das Du Dir am besten den kompletten
Dateiinhalt mit der Methode ReadToEnd in einen String lädst, die Datei
danach
erstmal wieder schließt.
Dann bearbeitest Du den String mit gewöhnlichen Stringoperatoren wie Replace
und so.
Danach schreibst Du einfach eine neue Datei mit gleichem Namen, die Alte
wird
dabei überschrieben.

Gruß, Stephanie
Armin Zingler
2003-12-19 10:00:50 UTC
Permalink
Post by Stephanie Glahs
Post by Herfried K. Wagner [MVP]
Post by johannes
Ich muss in einer Textdatei bestimmte Zeilen ändern. Wie
kann ich VB.net Zeilen ansprechen?
Dazu musst du die Zeilen lesen, bearbeiten und wieder in die
Datei schreiben. Schau dir die Klassen im Namespace 'System.IO' an,
vor Allem 'StreamReader' und 'StreamWriter' und deren Methoden
'Read*'.
Also ich möchte dem noch hinzufügen, das Du Dir am besten den
kompletten Dateiinhalt mit der Methode ReadToEnd in einen String
lädst, die Datei danach
erstmal wieder schließt.
Dann bearbeitest Du den String mit gewöhnlichen Stringoperatoren wie
Replace und so.
Danach schreibst Du einfach eine neue Datei mit gleichem Namen, die
Alte wird
dabei überschrieben.
Ja, kann man machen. Empfiehlt sich nur nicht für "große" Dateien. Ich würde
trotzdem in eine neue Datei schreiben, die alte umbenennen und dann die neue
benennen wie die alte, denn wenn du es so machst, wie du beschreibst, und
die Kiste abgk.. stürzt, ist die Datei hinüber und im RAM ist auch nicht
mehr viel übrig.
--
Armin

http://www.plig.net/nnq/nquote.html
http://www.netmeister.org/news/learn2quote.html
Herfried K. Wagner [MVP]
2003-12-19 11:59:54 UTC
Permalink
Hallo Armin!
Post by Armin Zingler
Post by Stephanie Glahs
Post by Herfried K. Wagner [MVP]
Post by johannes
Ich muss in einer Textdatei bestimmte Zeilen ändern. Wie
kann ich VB.net Zeilen ansprechen?
Dazu musst du die Zeilen lesen, bearbeiten und wieder in die
Datei schreiben. Schau dir die Klassen im Namespace 'System.IO' an,
vor Allem 'StreamReader' und 'StreamWriter' und deren Methoden
'Read*'.
Also ich möchte dem noch hinzufügen, das Du Dir am besten den
kompletten Dateiinhalt mit der Methode ReadToEnd in einen String
lädst, die Datei danach
erstmal wieder schließt.
Dann bearbeitest Du den String mit gewöhnlichen Stringoperatoren wie
Replace und so.
Danach schreibst Du einfach eine neue Datei mit gleichem Namen, die
Alte wird
dabei überschrieben.
Ja, kann man machen. Empfiehlt sich nur nicht für "große" Dateien. Ich würde
trotzdem in eine neue Datei schreiben, die alte umbenennen und dann die neue
benennen wie die alte, denn wenn du es so machst, wie du beschreibst, und
Beachte, dass dadurch der (eventuell wichtige) Zeitstempel der
Ursprungsdatei (Datum der Erstellung) verloren geht.
--
Herfried K. Wagner [MVP]
<http://www.mvps.org/dotnet>
Armin Zingler
2003-12-19 12:33:56 UTC
Permalink
Post by Herfried K. Wagner [MVP]
Post by Armin Zingler
Post by Stephanie Glahs
Also ich möchte dem noch hinzufügen, das Du Dir am besten den
kompletten Dateiinhalt mit der Methode ReadToEnd in einen
String lädst, die Datei danach
erstmal wieder schließt.
Dann bearbeitest Du den String mit gewöhnlichen Stringoperatoren
wie Replace und so.
Danach schreibst Du einfach eine neue Datei mit gleichem Namen,
die Alte wird
dabei überschrieben.
Ja, kann man machen. Empfiehlt sich nur nicht für "große" Dateien.
Ich würde trotzdem in eine neue Datei schreiben, die alte
umbenennen und dann die neue benennen wie die alte, denn wenn du es
so machst, wie du beschreibst, und
Beachte, dass dadurch der (eventuell wichtige) Zeitstempel der
Ursprungsdatei (Datum der Erstellung) verloren geht.
Guter Hinweis. Andere Variante: Ursprungsdatei kopieren, Kopie öffnen und
lesen und in Ursprungsdatei schreiben.
--
Armin
Herfried K. Wagner [MVP]
2003-12-19 11:58:59 UTC
Permalink
Post by Stephanie Glahs
Post by Herfried K. Wagner [MVP]
Post by johannes
Ich muss in einer Textdatei bestimmte Zeilen ändern. Wie
kann ich VB.net Zeilen ansprechen?
Dazu musst du die Zeilen lesen, bearbeiten und wieder in die Datei
schreiben. Schau dir die Klassen im Namespace 'System.IO' an, vor Allem
'StreamReader' und 'StreamWriter' und deren Methoden 'Read*'.
Also ich möchte dem noch hinzufügen, das Du Dir am besten den kompletten
Dateiinhalt mit der Methode ReadToEnd in einen String lädst, die Datei
danach
erstmal wieder schließt.
Macht sich bei einer 100 MB-Datei auf einer 96-MB-RAM-Kiste sicher
gut...

;-)
--
Herfried K. Wagner [MVP]
<http://www.mvps.org/dotnet>
Lesen Sie weiter auf narkive:
Loading...