Потоци, потоци, TStream в Делфи

click fraud protection

Какво е поток? TStream?

Поток е това, което подсказва името му: течаща „река от данни“. Потокът има начало, край и винаги си някъде между тези две точки.

Използвайки на Delphi TStream обекти, от които можете да четете или пишете на различни видове носители за съхранение, като например дискови файлове, динамична памет и т.н.

Какви данни може да съдържа поток?

Потокът може да съдържа всичко, което харесвате, в реда, който желаете. В примерния проект, придружаващ тази статия, записи с фиксиран размер се използват за простота, но можете да запишете всяка комбинация от данни с променлив размер в поток. Не забравяйте обаче, че _you_ са отговорни за домакинството. Няма начин Delphi да „запомни“ какъв тип данни са в поток или в какъв ред!

Потоци срещу масиви

Масивите имат недостатъка да имат фиксиран размер, който трябва да се знае по време на компилиране. Добре, можете да използвате динамични масиви.

Потокът от друга страна може да нарасне до размера на наличната памет, която е значително голям размер в днешните системи, без никакви „домакински“ дела.

instagram viewer

Потокът не може да бъде индексиран, както може да се направи масив. Но както ще видите по-долу, "ходенето" нагоре и надолу по поток е много лесно.

Потоците могат да бъдат запазени / заредени до / от файлове в една проста операция.

Аромати на потоци

TStream е основният (абстрактен) клас клас за поточни обекти. Това, че сте абстрактни, означава, че TStream никога не трябва да се използва като такъв, а само в негови низходящи форми. За поточно предаване на всякакъв вид информация, изберете клас на потомък според конкретните нужди на данни и съхранение. Например:

  • TFileStream (за работа с файлове)
  • TMemoryStream (за работа с буфер памет)
  • TStringStream (за манипулиране на струни в паметта)
  • TBlobStream (за работа с полета BLOB)
  • TWinSocketStream (за четене и запис през сокет връзка)
  • TOleStream (за използване на COM интерфейс за четене и писане)

Както ще видите, TmemoryStream и TFileStream са забележително взаимозаменяеми и съвместими.

Изтеглете примерен проект!

instagram story viewer