Wie kann ich in Delphi Daten dauerhaft speichern?

Hallo alle miteinander!

Ich hab eine Frage bezüglich Delphi 5. Warum nur 5?

  • Weil wir damit im Info-Unterricht arbeiten.

Ich würde gerne wissen, wie man mit dem Program Daten dauerhaft speichern kann, auch wenn man das Porgram schließt und den PC herunterfährt. Ich weiß zumindest das es über eine Textdatei geht.
Aber bei sowas brauch selbst ein Profi wie ich Hilfe (grins)
Danke schon mal im voraus!

Richard

Es ist nicht zwangsmäßig eine Textdatei nötig. Du kannst auch willkürliche Dateiendungen erstellen.
Oder aber du bindest eine Datenbank ein ^^

Grobgesagt läuft es über Datensätze ab.

Genaueres kann ich dir aber jetzt auch nicht sagen dazu müsste ich meine Unterlagen zuhause durchschaun, dann kann ich dir mehr dazu sagen.

Hallo,

…wie man mit dem Program Daten dauerhaft speichern kann, auch wenn
man das Porgram schließt und den PC herunterfährt. Ich weiß zumindest
das es über eine Textdatei geht.

das geht z. B. sehr einfach mit einer Stringlist. Erzeug Dir eine Instanz von TStringlist, füge Deine Daten in Stringform mit Add(…) hinzu, und speicher alles vor Programmende mit SaveToFile(…). Zum Lesen nach Programmstart benutzt Du LoadFromFile(…).

Gruß
Martin

Huhu,

das Programm Erhält eine Botschaft, wenn es geschlossen werden soll. Üblicherweise kann man im Hauptfenster auf das OnClose- oder besser aus das OnCloseQuery-Ereignis reagieren. Dort muss man dann dafür sorgen, dass die Daten abgespeichert werden.

Wie das mit dem Abspeichern am besten funktioniert, richtet sich nach der Art der Daten, die abgespeichert werden sollen. Einige Komponenten bringen ihre „SaveToFile“-Methoden gleich mit, so zB. TMemo oder TIniFile usw. Reicht das nicht, muss man sich selbst kümmern.

Für Text ist das seht einfach: Du brauchst eine Dateivariable („F“) vom Typ TextFile. Mittels AssignFile(F, Dateiname) kannst du Delphi sagen, wie die Datei heißt, die du über F ansprechen willst. Dann kannst du mit Rewrite(F), Reset(F) oder Append(F) die Datei zum Schreiben, Lesen oder Anhängen öffnen. Schreiben kann man dann über WriteLn(F, IrgendeinString), lesen über ReadLn(F, IrgendeinString). Beachte: Wenn die Datei zum schreiben geöffnet ist, kann man nicht lesen und umgekehrt! Schließlich muss die Datei am Ende wieder geschlossen werden. Das geht mit CloseFile(F).

Hast Du spezielle Daten in Records von einem selbstdeklarierten Typ („TMeinRecTyp“), dann kann man eine Datei mit Datensätzen dieses Typs erstellen:

type F: File of TMeinRecTyp;

Ansonsten läuft alles wie beim Text, nur dass statt ReadLn und WriteLn die Befehle Read(F,einMeinRec) und Write(F,einMeinRec) verwendet werden.

Siehe zu den Begriffen „TextFile“, „File“, „AssignFile“, „Rewrite“ usw. in der Delphi Hilfe nach!

Tja, dann gibt es noch die TFileStream-Klasse, mit der man Daten schreiben und lesen kann (s. Delphi-Hilfe!).

Für sehr spezielle Dateimanipulationen kann man Dateien auch über Windows-Datei-Handles ansprechen. Mit FileCreate oder FileOpen bekommt man ein solches Handle, mit FileRead und FileWrite liest bzw. schreibt man und mit FileClose schließt man die Datei wieder. Die verwendung von Handles empfehle ich Dir nicht. Wenn es dich aber interessiert, dann lies dir zu diesen Begriffen wieder die Delphi-Hilfe durch.

Die Möglichkeit, Datenbanken zu nutzen, wurde ja schon angesprochen. Das ist aber i.d.R. mit Superkanonen auf kleine Spatzen geschossen.

VG
Jochen

Okay, vielen dank!
klappt einwandfrei
richard

2 Like