Streams, Streams, TStream Delphissä

Mikä on virta? TStream?

Virta on sen nimensä mukainen: virtaava "tietojen joki". Virralla on alku, loppu ja olet aina jossain näiden kahden pisteen välissä.

käyttämällä Delphin TStream-objektit, joita voit lukea tai kirjoittaa monenlaisille tallennusvälineille, kuten levytiedostoille, dynaamiselle muistille ja niin edelleen.

Mitä tietoja stream voi sisältää?

Virta voi sisältää mitä tahansa haluamassasi järjestyksessä. Tämän artikkelin mukana olevassa esimerkkihankkeessa kiinteän koon tietueita käytetään yksinkertaisuuden vuoksi, mutta voit kirjoittaa minkä tahansa sekoituksen muuttuvan kokoisia tietoja streamiin. Muista kuitenkin, että _you_ olet vastuussa kodinpidosta. Delphi ei voi millään tavalla "muistaa" millaisia ​​tietoja streamissä on tai missä järjestyksessä!

Streams Versus Arrays

Matriisien haittana on kiinteä koko, joka on tiedettävä kokoamishetkellä. Ok, voit käyttää dynaamisia taulukkoja.

Toisaalta virta voi kasvaa käytettävissä olevan muistin kokoon, joka on huomattavasti suuri nykypäivän järjestelmissä, ilman "kotitalous" askareita.

instagram viewer

Virtaa ei voida indeksoida, kuten taulukko voi. Mutta kuten alla näet, "kävely" ylös ja alas stream on erittäin helppoa.

Streams voidaan tallentaa / ladata tiedostoihin / tiedostoista yhdellä yksinkertaisella toiminnolla.

Streams-maut

TStream on virtaobjektien perus (abstrakti) luokkatyyppi. Abstrakti oleminen tarkoittaa, että TStreamia ei tule koskaan käyttää sellaisenaan, vaan vain sen jälkeläismuodoissa. Kaikkien tietojen suoratoistoa varten valitse jälkeläinen luokka tietyn tiedon ja tallennustarpeen mukaan. Esimerkiksi:

  • TFileStream (tiedostojen käsittelyyn)
  • TMemoryStream (muistipuskurin kanssa työskentelemiseen)
  • TStringStream (muistion sisäisten merkkijonojen käsittelemiseen)
  • TBlobStream (BLOB-kenttien kanssa työskentelemiseen)
  • TWinSocketStream (lukemiseen ja kirjoittamiseen pistorasiayhteyden kautta)
  • TOleStream (COM-käyttöliittymän käyttämiseen lukemiseen ja kirjoittamiseen)

Kuten huomaat, TmemoryStream ja TFileStream ovat huomattavasti vaihdettavissa ja yhteensopivia.

Lataa näyteprojekti!