Besitzer von
BDS/TD könnten auch eine
unterstützende Klasse ("class helper") einsetzen:
Delphi-Quellcode:
type
TStreamHelper = class helper for TStream
public
function ReadString: string;
procedure WriteString (const s: string);
end;
function TStreamHelper.ReadString: string;
var
len : Integer;
begin
ReadBuffer(len, SizeOf(len));
SetLength (Result, len);
if (len > 0) then
ReadBuffer(Result[1], len);
end;
procedure TStreamHelper.WriteString (const s: string);
var
len : Integer;
begin
len := Length(s);
WriteBuffer(len, SizeOf(len));
if (len > 0) then
WriteBuffer(s[1], len);
end;
Verwendung:
Delphi-Quellcode:
procedure TForm1.Button1Click (Sender: TObject);
var
Stream : TFileStream;
begin
Stream := TFileStream.Create('test.stm', fmCreate);
Stream.WriteString ('Testtext');
Stream.Free;
end;
procedure TForm1.Button2Click (Sender: TObject);
var
Stream : TFileStream;
begin
Stream := TFileStream.Create('test.stm', fmOpenRead);
ShowMessage (Stream.ReadString);
Stream.Free;
end;
Der Vorteil dieser Lösung: sie funktioniert mit allen Nachfahren von
TStream.
Gruß Hawkeye