Prúdy, toky, TStream v Delphi

Čo je to stream? TStream?

Jeho názov naznačuje prúd: tečúca „rieka údajov“. Prúd má začiatok, koniec a vždy ste niekde medzi týmito dvoma bodmi.

Použitím Delphi Objekty TStream, z ktorých môžete čítať alebo zapisovať na rôzne druhy úložných médií, ako sú napríklad diskové súbory, dynamická pamäť atď.

Aké údaje môže prúd obsahovať?

Stream môže obsahovať všetko, čo sa vám páči, v poradí, v akom sa vám páči. V príklade projektu priloženom k ​​tomuto článku sa záznamy s pevnou veľkosťou používajú na účely jednoduchosti, do toku však môžete zapísať ľubovoľnú kombináciu údajov s rôznou veľkosťou. Nezabudnite však, že ste za domácnosť zodpovední. Nie je možné, aby si Delphi „pamätala“, aké údaje sú v streame alebo v akom poradí!

Streamy verzus polia

Nevýhodou polí je, že majú pevnú veľkosť, ktorá musí byť známa v čase kompilácie. Ok, môžete použiť dynamické polia.

Prúd na druhej strane môže dorásť až do veľkosti dostupnej pamäte, ktorá je v dnešných systémoch značne veľká, bez akýchkoľvek domácich prác.

instagram viewer

Tok sa nedá indexovať, ako to môže matica. Ako však uvidíte nižšie, „chôdza“ po prúde je veľmi ľahká.

Prúdy je možné ukladať / načítavať do / zo súborov v jednej jednoduchej operácii.

Príchute prúdov

TStream je základný (abstraktný) typ triedy pre objekty streamov. Byť abstraktom znamená, že TStream by sa nikdy nemal používať ako taký, ale iba v jeho potomkových formách. Ak chcete streamovať akékoľvek informácie, vyberte triedu potomkov podľa konkrétnych potrieb údajov a úložiska. Napríklad:

  • TFileStream (pre prácu so súbormi)
  • TMemoryStream (pre prácu s vyrovnávacou pamäťou)
  • TStringStream (na manipuláciu s reťazcami v pamäti)
  • TBlobStream (pre prácu s poľami BLOB)
  • TWinSocketStream (na čítanie a zápis cez pripojenie soketu)
  • TOleStream (na používanie rozhrania COM na čítanie a zápis)

Ako uvidíte, TmemoryStream a TFileStream sú mimoriadne zameniteľné a kompatibilné.

Stiahnite si ukážkový projekt!

instagram story viewer