Hi,
die Sache ist folgende:
Ich schreibe wie gesagt, diesen Record TTEDInfo in eine Datei. Wenn nun jemand mit meinem Programm diese Datei öffnet, dort aber andere _VERSION drinn sein sollten, soll der Benutzer informiert werden, dass der Benutzer eine alte Version hat oder er ein altes Dokument geöffnet hat.
Auselesen:
Delphi-Quellcode:
procedure TContainer.Load(const FileName: String);
var
Doc: TDocument;
Ext: String;
Stream: TFileStream;
StringStream: TStringStream;
Info: TTEDInfo;
begin
Doc := GetDoc;
Ext := ExtractFileExt(FileName);
if LowerCase(Ext) <> '.ted' then
begin
case Doc.FEditorType of
etRich:
TRxRichEdit(Self.FRichEdits[Doc.Number]).Lines.LoadFromFile(FileName);
etSyn: TSynEdit(Self.FSynEdits[Doc.Number]).Lines.LoadFromFile(FileName);
end;
end
else
begin
try
Stream := TFileStream.Create(FileName, fmCreate);
StringStream := TStringStream.Create('');
Info := ReadTedInfoFromStream(Stream);
ShowMessage(Info.CORE_VERSION); // Das is nur ma zum Test
ShowMessage(Info.SAVE_TEXT); // Das auch^^
finally
FreeAndNil(Stream);
FreeAndNil(StringStream);
end;
end;
end;
Speichern:
Delphi-Quellcode:
procedure TContainer.Save(const FileName: String);
var
Doc: TDocument;
Ext: String;
Stream: TFileStream;
StringStream: TStringStream;
begin
Doc := GetDoc;
Ext := ExtractFileExt(FileName);
if LowerCase(Ext) <> '.ted' then
begin
case Doc.FEditorType of
etRich:
TRxRichEdit(Self.FRichEdits[Doc.Number]).Lines.SaveToFile(FileName);
etSyn: TSynEdit(Self.FSynEdits[Doc.Number]).Lines.SaveToFile(FileName);
end;
end
else
begin
try
Stream := TFileStream.Create(FileName, fmCreate);
StringStream := TStringStream.Create('');
WriteTedInfoToStream(Stream, TedInfo);
finally
FreeAndNil(Stream);
FreeAndNil(StringStream);
end;
end;
end;
Deswegen wollte ich das so speichern:
- TEDInfo
- Eigentlicher Inhalt der Datei (wird im Moment noch nicht gespeichert)