Delphi.cz

Český portál Delphi

String a stream

Pokud potřebujeme zapisovat někam data, nebo jen předávat data do jiné části programu, je výhodné používat některý z následníků TStream. Převážná část knihovny Delphi nebo knihoven třetích stran podporuje práci se streamy. Často ale také potřebujeme jen v paměti vytvořit datový proud a ten později zpracovat.

Základní třídou je TMemoryStream. V podstatě představuje data uložená v paměti - jakoby soubor v paměti. Pro operace s ním jsou určité metody, ale přece jen by to chtělo něco čistějšího, zejména pokud pracujeme s textovými daty. Řešením je použití např. TStringWriter, TStreamWriter resp. přímo TStringStream (nebo TStringBuilder) atd.

Pro neunicode Delphi je TStringStream implementován v podstatě jen jako string, což mi přišlo pěkné. V Unicode Delphi se jedná o následníka TBytesStream (resp. TMemoryStream).

program Project1;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  SysUtils, classes;

var
  ss: TStringStream;
  ms: TMemoryStream;
  sw: TStringWriter;
  swr: TStreamWriter;

begin
  sw := TStringWriter.Create;
  sw.Write('hello');
  sw.Write('world');
  writeln(sw.ToString);
  sw.Free;


  ms:= TMemoryStream.Create;
  swr := TStreamWriter.Create(ms);
  try
    swr.Write('Hello');
    swr.Write('World');
    writeln(ms.Size);
  finally
    swr.Free;
    ms.Free;
  end;

  ss := TStringStream.Create;
  try
    ss.WriteString('Hello world');
    writeln(ss.Size);
    writeln(ss.DataString);
  finally
    ss.Free;
  end;


end.

Datum: 2012-05-03 23:07:00 Tagy: začátečníci

Praxe Začátečníci