Aus einer Datei lesen und in gleiche Datei schreiben
-
Hallo Leute,
ich möchte aus einer Datei solange lesen, bis ein bestimmter String in einer Zeile gefunden wird. Diesen muss ich dann durch einen anderen ersetzen und die Zeile wie der in die Datei zurückschreiben.Das geht alles soweit ganz gut, ich habe nur ein paar Probleme mit dem Handling. Und zwar: wenn die neue Zeile kürzer ist, dan bricht der Schreiber sowohl am Ende meines ersetzten String, als auch des ursprünglichen Zeilenumbruches.
Ist die Zeile länger, schreibt er meine neue Zeile zwar ordnungsgemäß in eine Zeile, überschreibt aber von der nächste Zeile soviele Zeichen, wie die neue Zeile länger ist.Der Text sieht so aus:
Ursprung:
xxx c:\w2k\hallo.txt yyy
Hier ist die neue Zeile zu findenModifiziert (kürzer):
xxx c:\w\hallot.txt yyy
Hier ist die neue Zeile zu fidnen
Modifiziert(länger):
xxx c:\w2ktest\hallo.txt yyy
ist die neue Zeile zu findenIch schaffe es irgendwie nicht den Dateizeiger korrekt zu positionieren, zumal sich die Position nach jeder Längenänderung ja verändert.
Im Prinzip müsste ich einafch die Zeile mit dem String komplett zu löschen und einfach neu schreiben.
Hat einer eine Idee?Danke
ps. Und bitte nicht fragen, warum ich keine Hilfsdatein zum rausschreiben und wieder reinschreiben nehmen kann. Es geht nicht
-
Du kannst in einer Datei nicht einfach Zeichen rausschneiden oder dazwischenschieben, bestenfalls die vorhandenen Zeichen ersetzen. Also müßtest du von deinem Fundort an alle Zeichen bis zum Dateiende einlesen und hinter deinem Ersatztext neu einfügen.
(wenn du das öfter machen sollst, empfiehlt es sich, die Datei einmal komplett einzulesen und dann im RAM zu bearbeiten)