Einzelnen Beitrag anzeigen

Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#15

Re: Record und in File speichern

  Alt 11. Mär 2007, 14:13
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:

Delphi-Quellcode:
var
  AlleDaten : Alles;
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
  Mit Zitat antworten Zitat