Ok, der von Luckie vorgeschlagene Weg über Klassen ist sicher der beste, für den Anfang aber vielleicht etwas zu steinig. Ändere zunächst die Definition von
Alles wie folgt ab:
Delphi-Quellcode:
Alles= record
// Vert_ast : array [0..30] of array [0..22] of string;
Vert_ast : array [0..30] of array [0..22] of string[255]; // <-- hier geändert
vert_datum : array [0..31] of Vert_ent;
mod_ : array [0..15] of Modell;
end;
So erreichen wir, daß Delphi einen
ShortString mit einer festen Länge verwendet, der direkt in einem Stream gespeichert werden kann. Nun benötigen wir noch eine Variable, welche die zu speichernden Daten aufnimmt:
In dieser Variablen legst du alle zu speichernden Daten ab. Die Methode
Speichern1Click muß nur an einer Stelle geändert werden:
Delphi-Quellcode:
// stream.WriteBuffer (Alles, SizeOf (Alles));
stream.WriteBuffer (AlleDaten, SizeOf (AlleDaten)); // <-- hier geändert
Nun sollte das Speichern funktionieren. Beim Laden der Daten ist es ähnlich. Mit
ReadBuffer liest du die Daten in die Variable
AlleDaten ein, anschließend kannst du sie verarbeiten.
Wenn dein Programm dann funktioniert, und du die Vorgänge nachvollziehen kannst, solltest du dich mit anderen Möglichkeiten der Datenspeicherung vertraut machen (dynamische Strukturen, Klassen). Der jetzige Weg ist ziemlich unflexibel und wird spätestens bei größeren Datenmengen zu Problemen führen.
Gruß Hawkeye