String a stream

vložil Radek Červinka 4. května 2012 00:07

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.

Tagy:

Praxe | Začátečníci

Komentování ukončeno

Naše nabídka

MVP
Ing. Radek Červinka - Embarcadero MVP
profil na linkedin, Twitter:@delphicz

Nabízím placené poradenství a konzultace v oblasti programování a vývoje SW.
Dále nabízíme i vývoj speciálního software na zakázku.

Neváhejte nás kontaktovat (i ohledně reklamy).

love Delphi

O Delphi.cz

Delphi je moderní RAD nástroj podporující tvorbu nativních aplikací pro platformu Win32, Win64, Mac OSX, Linux a na iPhone a Android.

Delphi.cz je nezávislý portál pro uživatele Delphi. Portál není koncipován pro úplné začátečníky, i když i ti se zde nebudou nudit, ale spíše na programátory, kteří již něco znají a chtějí své znalosti dále rozvíjet a sledovat novinky.

Poslední komentáře

Comment RSS

Dle měsíců