Straumes, straumes, TStream Delphi

Kas ir straume? TStream?

Straume ir tāda, kādu norāda tās nosaukums: plūstoša "datu upe". Straumei ir sākums, beigas, un jūs vienmēr atrodaties starp šiem diviem punktiem.

Izmantojot Delfi TStream objekti, kurus varat lasīt no dažādiem datu nesējiem vai rakstīt uz tiem, piemēram, diska faili, dinamiskā atmiņa utt.

Kādus datus straume var saturēt?

Straumē var būt viss, kas jums patīk, jums vēlamajā secībā. Šim rakstam pievienotajā projekta paraugā vienkāršības labad tiek izmantoti fiksēta lieluma ieraksti, taču straumē varat uzrakstīt jebkuru mainīga lieluma datu sajaukumu. Tomēr atcerieties, ka _jūs_ esat atbildīgs par mājturību. Nekādā veidā Delphi nevar "atcerēties", kāda veida dati atrodas straumē vai kādā secībā!

Straumes pret masīviem

Masīvu trūkums ir tāds, ka tiem ir noteikts izmērs, kas jāzina kompilēšanas laikā. Labi, jūs varat izmantot dinamiskos masīvus.

No otras puses, straume var palielināties līdz pieejamās atmiņas apjomam, kas mūsdienu sistēmās ir ievērojami liels, bez "mājsaimniecības" darbiem.

instagram viewer

Straumi nevar indeksēt kā masīvu. Bet, kā jūs redzēsit zemāk, "staigāt" augšup un lejup pa straumi ir ļoti viegli.

Straumes var saglabāt / ielādēt failos / no tiem vienā vienkāršā darbībā.

Straumju garšas

TStream ir bāzes (abstrakts) klases tips straumēšanas objektiem. Būt abstraktam nozīmē, ka TStream nekad nevajadzētu izmantot kā tādu, bet tikai pēctecīgās formās. Lai straumētu jebkāda veida informāciju, izvēlieties pēcnācēju klasi atbilstoši īpašajām datu un uzglabāšanas vajadzībām. Piemēram:

  • TFileStream (darbam ar failiem)
  • TMemoryStream (darbam ar atmiņas buferi)
  • TStringStream (manipulēšanai ar atmiņu virknēm)
  • TBlobStream (darbam ar BLOB laukiem)
  • TWinSocketStream (lasīšanai un rakstīšanai, izmantojot kontaktligzdas savienojumu)
  • TOleStream (COM saskarnes izmantošanai lasīšanai un rakstīšanai)

Kā redzēsit, TmemoryStream un TFileStream ir ārkārtīgi savstarpēji aizstājami un savietojami.

Lejupielādējiet projekta paraugu!

instagram story viewer