Hallo allerseits,
ich habe folgende Datenstruktur:
Delphi-Quellcode:
type
TComponentEntry = record
sComponentName: String;
cCaption: TCaption;
cHint: TCaption;
end; //type TComponentEntry = record
TFormEntry = record
sFormName: String;
cCaption: TCaption;
ComponentEntries: array of TComponentEntry;
end; //type TFormEntry = record
TLanguageEntry = record
sLanguageName: String;
FormEntries: array of TFormEntry;
end; //type TLanguageEntry = record
var
LanguageEntries: array of TLanguageEntry;
Diese Struktur dient dazu, alle Texte fuer meine Anwendung zu speichern, so dass diese auch schnell gewechselt werden. Nun moechte ich die Texte aber nicht jedesmal neu aus der ini-Datei laden, sondern das LanguageEntries-Array direkt in eine Datei schreiben und neu auslesen.
Ich habe bereits folgendes versucht:
Speichern
Delphi-Quellcode:
var
MS: TMemoryStream;
begin
ShowMessage(IntToStr(Length(LanguageEntries)));
MS := TMemoryStream.Create;
try
MS.Position := 0;
MS.Write(LanguageEntries, SizeOf(LanguageEntries));
MS.SaveToFile('C:\temp.tmp');
finally
MS.Free;
end;
ShowMessage('Saved');
Laden:
Delphi-Quellcode:
var
MS: TMemoryStream;
begin
MS := TMemoryStream.Create;
try
MS.Position := 0;
MS.LoadFromFile('C:\temp.tmp');
MS.Read(LanguageEntries, SizeOf(LanguageEntries));
finally
MS.Free;
end;
ShowMessage(IntToStr(Length(LanguageEntries)));
Nun, beim Speichern kam keine Fehlermeldung, kein gar nichts, die Datei wurde sogar geschrieben, und zwar mit folgendem Inhalt (Hex):
Vor dem Speichern war eben ein Spracheintrag mit insg. 4 Forms und wasweisich wieviel Komponenten pro Form, nach dem Laden nichts.
Hat jemand eine Idee wie ich diese Struktur speichern kann? Die Texte sollten auch nicht unbedingt im Klartext drinstehn, ich haette lieber sowas wie bei einem File of <Datentyp>
Thanx and Greetz
alcaeus