Strömmar, strömmar, TStream i Delphi

Vad är en ström? Tstream?

En ström är vad namnet antyder: en flödande "flod av data". En ström har en början, ett slut, och du är alltid någonstans mellan dessa två punkter.

Använder sig av Delphis TStream-objekt som du kan läsa från eller skriva till olika typer av lagringsmedia, till exempel diskfiler, dynamiskt minne och så vidare.

Vilka data kan en ström innehålla?

En ström kan innehålla vad du vill, i den ordning du vill. I exempelprojektet som följer med den här artikeln används poster i fast storlek för enkelhetsändamål, men du kan skriva valfri blandning av variabel storlek till en ström. Kom ihåg att du ansvarar för hushållet. Det finns inget sätt Delphi kan "komma ihåg" vilken typ av data finns i en ström, eller i vilken ordning!

Strömmar kontra matriser

Matriser har nackdelen med att ha en fast storlek som måste vara känd vid sammanställningstiden. Okej, du kan använda dynamiska matriser.

En ström å andra sidan kan växa upp till storleken på tillgängligt minne, vilket är betydligt stort på dagens system, utan några "hushåll" -arbeten.

instagram viewer

En ström kan inte indexeras, som en matris kan. Men som du ser nedan är det mycket lätt att "gå" upp och ner i en bäck.

Strömmar kan sparas / laddas till / från filer i en enkel operation.

Smaker av strömmar

Tstream är bas (abstrakt) klasstyp för strömobjekt. Att vara abstrakt innebär att TStream aldrig ska användas som sådan, utan bara i dess efterkommande former. För att strömma alla typer av information, välj en ättlingsklass enligt specifika data och lagringsbehov. Till exempel:

  • TFileStream (för att arbeta med filer)
  • TMemoryStream (för att arbeta med en minnesbuffert)
  • TStringStream (för att manipulera strängar i minnet)
  • TBlobStream (för att arbeta med BLOB-fält)
  • TWinSocketStream (för läsning och skrivning via en socketanslutning)
  • TOleStream (för att använda ett COM-gränssnitt för att läsa och skriva)

Som ni ser är TmemoryStream och TFileStream anmärkningsvärt utbytbara och kompatibla.

Ladda ner provprojekt!

instagram story viewer