Entwickler-Ecke

Dateizugriff - Konsole -> Text an txt-datei anhängen?


Pyr0cracker - Fr 14.03.03 22:14
Titel: Konsole -> Text an txt-datei anhängen?
Hi, wie kann ich bei einer konsolenanwendung einen text an eine txt datei anhängen?
mit

Quelltext
1:
2:
3:
4:
5:
6:
assignfile(datei,'cgi1.htm');
rewrite(datei);
Reset(datei);
write(datei,name);
write(datei,beitrag);
CloseFile(datei);

geht das nicht, da wird die datei einfach überschrieben.
hat jemand ne idee?

cu


HSchaffi - Fr 14.03.03 23:18

anstatt rewrite(datei) -> append(datei)


HSchaffi - Fr 14.03.03 23:20

und reset weg, oder willst du sie lesen?


Pyr0cracker - Fr 14.03.03 23:36

aha, append, hatte ich nicht dran gedacht.

Zitat:
procedure Append(var F: Text);

Beschreibung

Mit Append können Sie sicherstellen, daß eine Datei schreibgeschützt geöffnet und der Dateizeiger auf das Ende der Datei gesetzt wird. F ist eine Textdateivariable und muß zuvor mit AssignFile einer externen Datei zugeordnet werden. Ist die Datei mit dem angegebenen Namen nicht vorhanden, tritt ein Fehler auf. Wenn F bereits offen ist, wird sie geschlossen und anschließend erneut geöffnet. Die aktuelle Dateiposition wird dann auf das Dateiende gesetzt.


und wie kann ich den zeiger an eine bestimmte stelle in der datei setzen?


wulfskin - Sa 15.03.03 02:33

Pyr0cracker hat folgendes geschrieben:
und wie kann ich den zeiger an eine bestimmte stelle in der datei setzen?
Das sollte mit Seek gehen!


Brueggendiek - Sa 15.03.03 02:55

Hallo!

@wulfskin: es geht hier um TEXT-Dateien!

Textdateien haben ein großes Problem: die Satzlänge ist unterschiedlich. Deshalb können Textdateien entweder gelesen oder geschrieben (erweitert) werden, gleichzeitiges Lesen und Schreiben ist nicht möglich. Ebenso kann man keine Datensätze überschreiben. Damit kann man also kein SEEK einsetzen!

Wenn bei Textdateien etwas verändert werden soll, muß entweder ordentlich Zeile für Zeile umkopiert werden (dabei die Änderung durchführen) oder die ganze Datei in den Speicher gelutscht werden - neuerdings haben wir's ja - und nach Veränderung wieder rausgeschrieben.

Sollen Datensätze wahlfrei gelesen oder geschrieben werden, muß mit einer typisierten Datei gearbeitet werden. Das ist dann so eine Art dynamisches Array auf der Platte. Die Datensätze müssen dann alle gleich groß sein. Außerdem sind nur kurze Strings erlaubt, die belegen alle die maximale Zeichenzahl.

Gruß

Dietmar Brüggendiek


Pyr0cracker - Sa 15.03.03 10:40

ohh, da mit kenn ich mich nicht aus :(
aber kann ich denn eine ganze text datei auslesen und in eine variable schreiben (mit konsole) ?
also, ich hab ne htmlseite und möchte mit meinem programm dort was neues reinschreiben. muss also den ganzen text auslesen, ihn verändern und wieder reinschreiben.
weiss nur nich wie das geht.


mars - Sa 15.03.03 13:04

Lies es einfach in eine TStringList ein (TStringList.LoadFromFile), veränder es nach deinem Belieben und schreibe es zurück (TStringList.SaveToFile).