Co je to stream? TStream?
Jeho název naznačuje proud: tekoucí „řeka dat“. Proud má začátek, konec a vždy jste někde mezi těmito dvěma body.
Použitím Delphi je Objekty TStream, které můžete číst nebo zapisovat na různé druhy paměťových médií, jako jsou soubory na disku, dynamická paměť atd.
Jaká data může proud obsahovat?
Stream může obsahovat cokoli, co se vám líbí, v pořadí, které se vám líbí. V příkladu projektu, který doprovází tento článek, se záznamy s pevnou velikostí používají pro účely jednoduchosti, ale do proudu můžete zapsat libovolnou kombinaci dat proměnné velikosti. Nezapomeňte však, že za domácnosti jste zodpovědní. Není možné, aby si Delphi „pamatovala“, jaká data jsou v proudu nebo v jakém pořadí!
Streams versus Arrays
Nevýhodou matic je, že mají pevnou velikost, která musí být známa při kompilaci. Dobře, můžete použít dynamická pole.
Tok na druhé straně může vyrůst až do velikosti dostupné paměti, která je v dnešních systémech značně velká, bez jakýchkoli „domácích“ prací.
Tok nelze indexovat, jak to může pole. Jak ale uvidíte níže, „chůze“ po proudu je velmi snadná.
Toky lze uložit / načíst do / ze souborů v jedné jednoduché operaci.
Příchutě proudů
TStream je základní (abstraktní) typ třídy pro objekty streamů. Být abstraktní znamená, že TStream by nikdy neměl být používán jako takový, ale pouze v jeho potomkových formách. Chcete-li streamovat jakékoli informace, vyberte třídu potomků podle konkrétních potřeb dat a úložiště. Například:
- TFileStream (pro práci se soubory)
- TMemoryStream (pro práci s vyrovnávací pamětí)
- TStringStream (pro manipulaci s řetězci v paměti)
- TBlobStream (pro práci s poli BLOB)
- TWinSocketStream (pro čtení a zápis přes připojení soketu)
- TOleStream (pro použití rozhraní COM ke čtení a zápisu)
Jak uvidíte, TmemoryStream a TFileStream jsou pozoruhodně zaměnitelné a kompatibilní.
Stáhněte si ukázkový projekt!