(Co-Admin)
Registriert seit: 29. Mai 2002
Ort: Hamburg
11.119 Beiträge
Delphi 11 Alexandria
|
Re: String in TFileStream
28. Jan 2006, 16:42
Moin Metatron,
hier mal ein kleines Beispiel (getestet):
Delphi-Quellcode:
var
fs : TFileStream;
ms : TMemoryStream;
sValue : string;
dwLen : DWORD;
begin
// Speichern
fs := TFileStream.Create('c:\temp\testdatei.txt',fmCreate);
ms := TMemoryStream.Create;
try
sValue := 'Diesen String an den Anfang';
// Einen String in die Datei schreiben, inclusive Länge, damit
// man ihn anschliessend wieder auslesen kann
dwLen := length(sValue);
fs.Write(dwLen,4);
fs.Write(sValue[1],dwLen);
// Und den Inhalt des MemoryStreams hinterher
// Irgendetwas sollte dann aber schon drinstehen ;-)
fs.CopyFrom(ms,0)
finally
FreeAndNil(fs);
FreeAndNil(ms);
end;
// Löschen, um zu zeigen, dass es funktioniert ;-)
dwLen := 0;
sValue := '';
// Auslesen
fs := TFileStream.Create('c:\temp\testdatei.txt',fmOpenRead);
ms := TMemoryStream.Create;
try
// Stringlänge auslesen
fs.Read(dwLen,4);
SetLength(sValue,dwLen);
fs.Read(sValue[1],dwLen);
// Diesmal muss die Länge mit angegeben werden, damit die Position im
// FileStream nicht wieder auf 0 gesetzt, sondern hinter dem String
// ausgelesen wird.
ms.CopyFrom(fs,fs.Size-fs.Position);
finally
FreeAndNil(fs);
FreeAndNil(ms);
end;
end;
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
|
|
Zitat
|