Логин: Пароль:    Регистрация Всеми возможностями сайта можно пользоваться
только после авторизации.
   Забыли пароль?

Поиск
L



Статистика
u
Пользователи онлайн: нет
Гостей онлайн: 7
Всего онлайн: 7
Зарегистрировано юзеров: 6362
Комментариев на сайте: 645
Новый юзер: Pseulairrerve



Последние комментарии
c
Aqel прокомментировал "Урок 71 - Работа с сжатыми файлами":
GZip псевдоархив, на мой вопрос тоже не отвечают, как распаковать отдельные файлы/папки...
Pingitrus прокомментировал "Урок 71 - Работа с сжатыми файлами":
Есть еще кто нибудь живой на этом сайте, кто сможет помочь? Так то все работает, zip и rar распаковывает, но у меня есть файл dat который сжат GZip, почему то его не удается распаковать или так не получится так как этот файл не является архивом или является?)) пишет ошибку что неверная функция



Мы в соцсетях
c
Delphi
Потоки данных в Delphi

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

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

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

Свойства

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

Методы

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

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

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

Вот и всё, Удачи!

Математическое программирование в среде delphi
Источник: www.thedelphi.ru
Автор: Савельев Александр
Опубликовано: 1 июля 2016
Просмотров:


Зарегистрируйтесь или авторизуйтесь, чтобы добавлять комментарии.