Бояться не надо



Статьи о Delphi

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

Под потоком здесь понимается объект TStream, который является базовым объектом для потоков разных типов. В этом объекте реализованы все необходимые свойства и методы, используемые для чтения и записи данных на различные типы носителей (память, диск, медиа-носители). Благодаря этому объекту доступ к разным типам носителей становится одинаковым. Сейчас мы не будем рассматривать пример использования потоков, а ограничимся только теоретическими знаниями.

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

Итак, давайте разберемся со свойствами и методами потока.

Свойства

Position — указывает на текущую позицию курсора в потоке. Начиная с этой позиции будет происходить чтение данных;
Size — размер данных в потоке.

Методы

CopyFrom — метод предназначен для копирования из другого потока. У него два параметра: указатель на поток, из которого надо копировать, и число, показывающее размер данных, подлежащих копированию;
Read — прочитать данные из потока, начиная с текущей позиции курсора. У этого метода два параметра — буфер, в который будет происходить чтение, и число, показывающее размер данных для копирования;
Seek — переместиться в новую позицию в потоке. У этого метода два параметра:
  1. Первый параметр: число, указывающее на позицию, в которую надо перейти. Если вам нужно передвинуться на пять байт, то просто укажите цифру 5.
  2. Второй параметр: откуда надо двигаться. Тут возможны три варианта:
    1. soFromBeginning — двигаться на указанное количество байт от начала файла;
    2. soFromCurrent — двигаться на указанное количество байт от текущей позиции в файле к концу файла;
    3. soFromEnd — двигаться от конца файла к началу на указанное количество байт.
SetSize — установить размер потока. Здесь только один параметр — число, указывающее новый размер потока. Допустим, что вам надо уменьшить размер файла. В этом случае с помощью метода SetSize потока TFiieStream вы можете уменьшить или даже увеличить размер файла.
Write — записать данные в текущую позицию потока. У этого метода два параметра:
  1. переменная, содержимое которой нужно записать;
  2. число байт для записи.
Это основные методы, которые вам могут понадобиться при работе с потоками.

Слова Stream и Thread переводятся на русский язык почему-то одинаково: поток. Но в программировании это разные термины. Stream — это поток каких-либо данных, a Thread обеспечивает многопоточность приложений (параллельное выполнение или вычисление). Чтобы не путаться, можно использовать один термин — поток, но в дальнейшем нужно понять разницу между двумя этими терминами.

Совет: Обращайте внимание на англоязычное название объектов, с которыми будете работать и помните, что Stream — это поток данных, a Thread — отдельная нить процесса, выполняющего инструкции программы. Процесс — это отдельная программа, которая может состоять из нескольких потоков (Thread). В данном случае поток можно воспринимать как процедуру, которая выполняется параллельно основной задаче. Именно поэтому и нужно вам следить за названиями, чтобы не путать поток данных и программный поток.



По материалам сайта О Delphi


В начало






Игрушки rabby вагинальные шарики купить.

© 2023 Delphi-Manual.ru - Уроки Delphi начинающим с нуля