Потоки даних в delphi

Потоки даних в Delphi

Під потоком тут розуміється об'єкт TStream. який є базовим об'єктом для потоків різних типів. В цьому об'єкті реалізовані всі необхідні властивості і методи, використовувані для читання і запису даних на різні типи носіїв (пам'ять, диск, медіа-носії). Завдяки цьому об'єкту доступ до різних типів носіїв стає однаковим. Зараз ми не будемо розглядати приклад використання потоків, а обмежимося тільки теоретичними знаннями.

Об'єкт TFileStream є нащадком головного об'єкта TStream і дозволяє отримати доступ до диска. Точно так само можна отримати доступ:
  • до пам'яті через об'єкт TmemoryStream;
  • до мережі через об'єкт TWinSocketstream;
  • до СОМ-інтерфейсу через об'єкт TOlestream;
  • до рядків, які знаходяться в динамічній пам'яті, через об'єкт TStringStream.
Це неповний список об'єктів потоків, але навіть всі ці об'єкти ми розглядати не будемо. Розглянемо лише базовий об'єкт TStream. Робота з іншими об'єктами ідентична і точно так же можна працювати з будь-яким іншим типом потоку.

Отже, давайте розберемося з властивостями і методами потоку.

Position - вказує на поточну позицію курсора в потоці. Починаючи з цієї позиції буде відбуватися читання даних;
Size - розмір даних в потоці.

Слова Stream і Thread переводяться на українську мову чомусь однаково: потік. Але в програмуванні це різні терміни. Stream - це потік будь-яких даних, a Thread забезпечує багатопоточність додатків (паралельне виконання або обчислення). Щоб не плутатися, можна використовувати один термін - потік, але в подальшому потрібно зрозуміти різницю між двома цими термінами.

Порада. Звертайте увагу на англомовну назву об'єктів, з якими будете працювати і пам'ятайте, що Stream - це потік даних, a Thread - окрема нитка процесу, що виконує інструкції програми. Процес - це окрема програма, яка може складатися з декількох потоків (Thread). В даному випадку потік можна сприймати як процедуру, яка виконується паралельно основному завданню. Саме тому і потрібно вам стежити за назвами, щоб не плутати потік даних і програмний потік.

Схожі статті