Microsoft Excel

Herbers Excel/VBA-Archiv

datei zeilenweise

Betrifft: datei zeilenweise von: Georg
Geschrieben am: 26.08.2004 13:23:33

Ich habe folgendes Problem:
Ich will in einer Textdatei eine einzelne Zeile bearbeiten/austauschen. Wenn ich die Datei als INPUT öffne kann ich sie zeilenweise durchsuchen lassen. Sobald ich meine Zeile hab, kann ich mir mit Seek #(datei) die aktuelle Position (leider in Bytes) ausgeben lassen.
Ich öffne danach die Datei (OUTPUT) und gehe mit Seek an die entsprechende Stelle. Muss ich jetzt Byte/Zeichen-weise herausfinden wann das nächste vbCrLf kommt um die Zeilenlänge zu bestimmen und sie dann Byteweise überschreiben?
Ausserdem: Sobald ich die Datei öffne für Output, an die Stelle gehe (seek) und was reinschreibe wird alles was davor steht gelöscht. Muss ich die Datei erst komplett einlesen und dann in dem eingelesenen die Zeile ändern und dann das ganze zurück schreiben?
Wenn ja, welcher Datentyp (String schaffts scheinbar nicht) kann an die 6000 Zeichen/Bytes aufnehmen?

Gibt es nicht eine Möglichkeit die Datei Zeilenweise zu bearbeiten, so dass ich mit Seek an die Stelle springe und dann die entsprechende Zeile wie mit Print überschreibe?

Bin dankbar für alle Tips!

Gruss Georg

  


Betrifft: AW: datei zeilenweise von: Axel
Geschrieben am: 26.08.2004 13:57:24

Hallo Georg,

ich mache solche Dinge immer anderst.

1. Umbennen original.txt in original.bak
2. öffnen original.bak zum lesen (input)
3. öffnen original.txt zum erstellen (output)
4. paralell lesen und schreiben (und zwar alles schreiben) - damit keine Probleme mit Bytes
5. alle beide wieder schließen
6. jetzt kannst du evtl. noch die original.bak löschen

Anm.: Macht natürlich keinen Sinn, wenn die Dateien extrem groß sind - Laufzeit!

Hilft das?

Gruß Axel


  


Betrifft: AW: datei zeilenweise von: Georg
Geschrieben am: 26.08.2004 14:04:26

Danke!
Ist eine Idee, hab auch grad gesehen, dass Strings das Einlesen schon packen muessten.
Mir scheinen bloß beim Einlesen in den String alle Steuerzeichen verloren zu gehen (vbCrLf).

Aber der Tipp ist auf jeden Fall eine Lösung.

Gruss
Georg


 

Beiträge aus den Excel-Beispielen zum Thema "datei zeilenweise"