Streams, Streams, TStream in Delphi

Hva er en strøm? TStream?

En strøm er det navnet antyder: en flytende "elv av data". En strøm har en begynnelse, en slutt, og du er alltid et sted mellom disse to punktene.

Ved hjelp av Delphis TStream-objekter du kan lese fra eller skrive til forskjellige typer lagringsmedier, for eksempel diskfiler, dynamisk minne og så videre.

Hvilke data kan en strøm inneholde?

En strøm kan inneholde hva du vil, i den rekkefølgen du vil. I eksempelprosjektet som følger med denne artikkelen, brukes poster i fast størrelse for enkelhets skyld, men du kan skrive hvilken som helst blanding av data i variabel størrelse til en strøm. Husk imidlertid at du er ansvarlig for husholdningen. Det er ingen måte Delphi kan "huske" hva slags data som er i en strøm, eller i hvilken rekkefølge!

Streams versus Arrays

Arrays har ulempen med å ha en fast størrelse som må være kjent på kompileringstidspunktet. OK, du kan bruke dynamiske matriser.

En strøm derimot, kan vokse opp til størrelsen på tilgjengelig minne, som er betydelig stor størrelse på dagens systemer, uten "husholdningsarbeid".

instagram viewer

En strøm kan ikke indekseres, slik en matrise kan. Men som du vil se nedenfor, å "gå" opp og ned i en bekk er veldig enkelt.

Strømmer kan lagres / lastes til / fra filer i en enkel operasjon.

Smaker av bekker

TStream er basistypen (abstrakt) for strømobjekter. Å være abstrakt betyr at TStream aldri skal brukes som sådan, men bare i dens etterkommende former. For å streame all slags informasjon, velg en etterkommerklasse i henhold til spesifikke data og lagringsbehov. For eksempel:

  • TFileStream (for arbeid med filer)
  • TMemoryStream (for å jobbe med en minnebuffer)
  • TStringStream (for å manipulere strenger i minnet)
  • TBlobStream (for arbeid med BLOB-felt)
  • TWinSocketStream (for lesing og skriving over en socketforbindelse)
  • TOleStream (for bruk av et COM-grensesnitt for å lese og skrive)

Som du vil se, er TmemoryStream og TFileStream bemerkelsesverdig utskiftbare og kompatible.

Last ned prøveprosjekt!