Streams, Streams, TStream in Delphi

Mis on voog? TStream?

Voog on see, mida selle nimi viitab: voolav "andmejõgi". Voolul on algus, lõpp ja olete alati nende kahe punkti vahel.

Kasutades Delphi omad TStream-objektid, mida saate lugeda või kirjutada mitmesugustest salvestusmeediumitest, näiteks kettafailid, dünaamiline mälu jne.

Milliseid andmeid voog võib sisaldada?

Voog võib sisaldada kõike, mis teile meeldib, teie soovitud järjekorras. Sellele artiklile lisatud näidisprojektis kasutatakse lihtsuse huvides kindla suurusega kirjeid, kuid voogu saab kirjutada mis tahes muutuva suurusega andmete segu. Pidage siiski meeles, et majapidamise eest vastutate _ teie ise. Delphi ei saa kuidagi "meelde jätta", millised andmed on ojas või mis järjekorras!

Streams versus massiivid

Massiivide puuduseks on kindel suurus, mis peab kompileerimise ajal olema teada. Ok, võite kasutada dünaamilisi massiive.

Seevastu voog võib kasvada saadaoleva mälumahuni, mis on tänapäevastes süsteemides märkimisväärselt suur, ilma majapidamistöödeta.

Voogu ei saa indekseerida, nagu massiivi saab. Kuid nagu allpool näete, on oja üles ja alla kõndimine väga lihtne.

instagram viewer

Vooge saab salvestada / laadida failidesse / failidest ühe lihtsa toiminguga.

Voogude maitsed

TStream on vooobjektide klassi (abstraktne) klassitüüp. Abstraktsus on see, et TStreami ei tohiks kunagi sellisena kasutada, vaid ainult järeltulijana. Igasuguse teabe voogesitamiseks valige järeltulijate klass vastavalt konkreetsetele andme- ja salvestusvajadustele. Näiteks:

  • TFileStream (failidega töötamiseks)
  • TMemoryStream (mälupuhvriga töötamiseks)
  • TStringStream (mälusiseste stringidega manipuleerimiseks)
  • TBlobStream (BLOB-väljadega töötamiseks)
  • TWinSocketStream (lugemiseks ja kirjutamiseks pistikupesa kaudu)
  • TOleStream (COM-liidese kasutamiseks lugemiseks ja kirjutamiseks)

Nagu näete, on TmemoryStream ja TFileStream märkimisväärselt vahetatavad ja ühilduvad.

Laadige alla näidisprojekt!