(CodeLib-Manager)
Registriert seit: 10. Jun 2002
4.648 Beiträge
Delphi XE Professional
|
Re: TStringList aus Datei nicht definierten Typs wieder einl
23. Nov 2003, 19:34
Im Prinzip funktioniert das etwa so:
Delphi-Quellcode:
procedure BlockWriteStringList(sl: TStrings; FileName: TFileName);
var
lIntSize, toWrite: LongInt;
fil: file;
begin
AssignFile(fil, filename);
try
Rewrite(fil, 1);
try
lIntSize := SizeOf(toWrite);
toWrite := Length(sl.Text);
BlockWrite(fil, toWrite, lIntSize);
if toWrite > 0 then
BlockWrite(fil, sl.Text[1], toWrite);
finally
CloseFile(fil);
end;
except
end;
end;
procedure BlockReadStringList(sl: TStrings; FileName: TFileName);
var
s: string;
lIntLth,
lth: LongInt;
fil: file;
begin
AssignFile(fil, filename);
try
Reset(fil, 1);
lIntLth := SizeOf(lth);
try
BlockRead(fil, lth, lIntLth);
if lth > 0
then begin
SetLength(s, lth);
BlockRead(fil, s[1], lth);
sl.Text := s;
end
else sl.Text := '';
finally
CloseFile(fil);
end;
except
end;
end;
// Testen:
procedure TfrmMain.Button1Click(Sender: TObject);
var
SL: TStringList;
begin
sl := TStringList.Create;
try
// Der Stringliste Items hinzufügen
SL.Add('test1');
SL.Add('test2');
SL.Add('test3');
// Stringliste in Datei speichern
BlockWriteStringList(SL, 'c:\temp\test.dat');
// Stringliste löschen
SL.Clear;
// StringListe laden
BlockReadStringList(SL, 'c:\temp\test.dat');
// 2. Item der StringListe anzeigen
ShowMessage(SL[1]);
finally
SL.Free;
end;
end;
Thomas
|
|
Zitat
|