Veröffentlicht 10. Juni 200421 j Hi, ich stehe jetzt irgendwie vor dem Problem, dass ich nicht weiss, wie man in einer Datei was ändern kann. Ich habe hier eine Configdatei (*.txt), die aber nicht INI-Norm hat, also fällt GetPrivateProfileString, etc schonmal weg. Die Parameter in der Datei sind aber relativ ähnlich, also name=wert, das ganze ist Zeilenorientiert. Jetzt möchte ich von bestimmten Variablen in der Datei den Wert ändern. Nur wie mache ich das? Wie kann ich überhaupt aus einer Datei einen einzelnen Buchstaben löschen? Kann ich irgendwie den Inhalt überschreiben, oder den alten rauslöschen und neuen Text an der Stelle einfügen? Ich glaub ich habe gerade einen Blackout :confused:
10. Juni 200421 j Hallo, eine von wahrscheinlich vielen Lösungen geht wie folgt: Datei öffnen Tempdatei öffnen Datei lesen Tempdatei schreiben und dabei den Wert ändern/ löschen/ hinzufügen Datei schließen Tempdatei schließen Datei löschen Tempdatei in Datei umbenennen Frank
10. Juni 200421 j Autor öhm, dass wollte ich gerade eben editieren. Die ganze Datei einlesen, intern ändern, und neu schreiben, ist ja klar. Wäre in diesem Fall auch kein Problem, weil die Datei nicht allzugross wird. Aber mir gehts da jetzt mal ums Prinzip? Ist es also nicht möglich, eine Datei nur an einer bestimmten Stelle zu ändern, ohne die ganze Datei neuschreiben zu müssen? PS: Beim ändern habe ich das Problem, dass die Längen nicht gleich bleiben, also müsste ich wohl den Rest der Datei grundsätzlich neu schreiben, oder? Ist das wirklich so? Dann müssten ja Änderungen an grossen Dateien ewig dauern, auch, wenn ich nur einen Buchstaben einfüge
10. Juni 200421 j Wenn ich mich jetzt nicht total irre, ist das so das du alles nachfolgende in der Datei neuschreiben musst. Eine Datei ist ja nichts anderes wie ein bestimmter Bereich im Speicher in dem verschiedene Wert hintereinander stehen, ähnlich einem String. Wenn du nun an einer Stelle einen neuen, längeren Wert einfügst dann wird der darauffolgende Speicher ja nicht automatisch verschoben, sondern du musst das erledigen.
11. Juni 200421 j Schau mal hier da habe ich soetwas ähnliches gemacht. die Datei musst du aber jedesmal neu schreiben. MVG need-some-blood
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.