Du könntest eine typisierte Datei verwenden
Vorraussetzung dafür ist, dass alle informationen pro Termin statische Größe haben, das heißt, du kannst keinen String speichern, wohl aber einen String statischer Größe wie z.B. String[255]. Ich geb dir mal ein Beispiel:
Delphi-Quelltext
1: 2: 3: 4:
| type TTermin = record Zeitpunkt: TDateTime Nachricht: String[255]; end; |
Hier hättest du einen statischen Datentyp in den du einen Termin speichern kannst. Nehmen wir an, du hast eine Menge von Terminen in einem dynamischen Array gespeichert, und möchtest dieses nun in eine Datei speichern:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| var Termine: array of TTermin;
var f: file of TTermin; i: Integer; begin AssignFile(f, 'C:\Dateiname'); Reset(f) Rewrite(f) for i := Low(Termine) to High(Termine) do Write(f, Termine[i]);
CloseFile(f); end; |
Das Laden funktioniert ganz ähnlich, mit Read, wobei du die Länge deines Arrays mit SetLength anpassen musst. Die Anzahl der gespeicherten Termine bekommst du mit
SizeOf(f) div SizeOf(TTermin) heraus (Länge der Datei geteilt durch Größe des Records; geht vermtl. auch anders - irgendwie)
Eine Möglichkeit um Nachrichten mit mehr als 256 Zeichen zu speichern wäre 2 Dateien anzulegen, die eine enthält dann die Nachrichten, in der anderen speicherst du für jeden Termin eine Zeilennummer (ersetze also
Nachricht: String[255] mit
Nachricht: Integer). Die Datei mit den Nachrichten würdest du dann einfach per TStringList laden und speichern

[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.