12161

Классы для представления потока данных

Лекция

Информатика, кибернетика и программирование

Классы для представления потока данных В среде Delphi существует иерархия классов для хранения и последовательного вводавывода данных. Классы этой иерархии называются потоками. Потоки лучше всего представлять как файлы. Классы потоков обеспечивают различное физическое ...

Русский

2013-04-24

43 KB

1 чел.

Классы для представления потока данных

В среде Delphi существует иерархия классов для хранения и последовательного ввода-вывода данных. Классы этой иерархии называются потоками. Потоки лучше всего представлять как файлы. Классы потоков обеспечивают различное физическое представление данных: файл на диске, раздел оперативной памяти, поле в таблице базы данных (таблица 3.1).

Класс

Описание

TStream

Абстрактный поток, от которого наследуются все остальные. Свойства и методы класса TStream образуют базовый интерфейс потоковых объектов.

THandleStream

Поток, который хранит свои данные в файле. Для чтения-записи файла используется дескриптор (handle), поэтому поток называется дескрипторным. Дескриптор — это номер открытого файла в операционной системе. Его возвращают низкоуровневые функции создания и открытия файла.

TFileStream

Поток, который хранит свои данные в файле. Отличается от ThandleStream тем, что сам открывает (создает) файл по имени, переданному в конструктор.

TMemoryStream

Поток, который хранит свои данные в оперативной памяти. Моделирует работу с файлом. Используется для хранения промежуточных результатов, когда файловый поток не подходит из-за низкой скорости передачи данных.

TResourceStream

Поток, обеспечивающий доступ к ресурсам в Windows-приложении.

TBlobStream

Обеспечивает последовательный доступ к большим полям таблиц в базах данных.

Таблица 3.1. Классы потоков 

Потоки широко применяются в библиотеке VCL и наверняка вам понадобятся. Поэтому ниже кратко перечислены их основные общие свойства и методы.

Общие свойства:

Position: Longint — текущая позиция чтения-записи.

Size: Longint — текущий размер потока в байтах.

Общие методы:

CopyFrom(Source: TStream; Count: Longint): Longint — копирует Count байт из потока Source в свой поток.

Read(var Buffer; Count: Longint): Longint — читает Count байт из потока в буфер Buffer, продвигает текущую позицию на Count байт вперед и возвращает число прочитанных байт. Если значение функции меньше значения Count, то в результате чтения был достигнут конец потока.

ReadBuffer(var Buffer; Count: Longint) — читает из потока Count байт в буфер Buffer и продвигает текущую позицию на Count байт вперед. Если выполняется попытка чтения за концом потока, то генерируется ошибка.

Seek(Offset: Longint; Origin: Word): Longint — продвигает текущую позицию в потоке на Offset байт относительно позиции, заданной параметром Origin. Параметр Origin может иметь одно из следующих значений: 0 — смещение задается относительно начала потока; 1 — смещение задается относительно текущей позиции в потоке; 2 — смещение задается относительно конца потока.

Write(const Buffer; Count: Longint): Longint — записывает в поток Count байт из буфера Buffer, продвигает текущую позицию на Count байт вперед и возвращает реально записанное количество байт. Если значение функции отличается от значения Count, то при записи была ошибка.

WriteBuffer(const Buffer; Count: Longint) — записывает в поток Count байт из буфера Buffer и продвигает текущую позицию на Count байт вперед. Если по какой-либо причине невозможно записать все байты буфера, то генерируется ошибка.

Ниже приводится фрагмент программы, демонстрирующий создание файлового потока и запись в него строки:

var

 Stream: TStream;

 S: AnsiString;

 StrLen: Integer;

begin

 // Создание файлового потока

 Stream := TFileStream.Create('Sample.Dat', fmCreate);

 ...

 // Запись в поток некоторой строки

 StrLen := Length(S) * SizeOf(Char);

 Stream.Write(StrLen, SizeOf(Integer)); // запись длины строки

 Stream.Write(S, StrLen);               // запись символов строки

 ...

 // Закрытие потока

 Stream.Free;

end;


 

А также другие работы, которые могут Вас заинтересовать

25730. Радиорелейные системы передачи информации. Классификация. Структурная схема РРЛ. Многоканальные РРЛ 2.6 MB
  Под радиосистемой передачи РСП понимают совокупность технических средств обеспечивающих образование типовых каналов передачи групповых трактов и линейного тракта по которому сигналы электросвязи передаются посредством распространения радиоволн в открытом пространстве. Существует множество различных классификаций РСП в зависимости от признаков положенных в их основу.По принадлежности к различным службам: РСП фиксированной службы радиосвязь между фиксированными пунктами; РСП радиовещательной службы передача сигнала для приема...
25731. Многоканальные системы связи. Общие понятия и обобщённая структурная схема многоканальной системы связи 78.86 KB
  Многоканальные системы связи. Общие понятия и обобщённая структурная схема многоканальной системы связи. Многоканальные системы связи – это системы связи позволяющие передавать по одной линии связи большое число независимых сообщений т. Для унификации многоканальных систем связи за основной или стандартный канал принимают канал тональной частоты канал ТЧ обеспечивающий передачу сообщений с эффективно передаваемой полосой частот 3003400 Гц соответствующей основному спектру телефонного сигнала.
25732. Спутниковые системы связи. Классификация ИСЗ по особенностям орбиты. Спутниковые службы в системах связи 15.05 KB
  Классификация ИСЗ по особенностям орбиты. Использование ИСЗ позволяет резко повысить дальность радиосвязи тк ретранслятор располагается высоко над Землей. 3 основных вида ИСЗ: ИСЗ на высокой эллиптической орбите ВЭО ИСХ на геостационарной орбите ГЭО ИСЗ на низковысотной орбите НВО ВЭО Спутники типа молния с периодом обращения 12 часов наклоном орбиты 63 градуса высотой апогея над северным полушарием 40 тыс. В области апогея скорость движения ИСЗ замедляется и обеспечивается радиовидимость 68 часов.
25733. Распространение декаметровых волн 37.72 KB
  К диапазону KB декаметровые волны относят радиоволны с длиной волны от 100 до 10м. В отличие от более коротких волн которые распространяются земной волной декаметровые волны распространяются в основном путем отражении от ионосферы. Радиус действия земной волны в диапазоне коротких волн сравнительно невелик и при обычно используемых мощностях передатчиков не превышает нескольких десятков километров. Но короткие волны могут распространяться на многие тысячи километров путем многократных последовательных отражений от ионосферы и Земли и...
25734. Взаимодействие уровней модели OSI 23.42 KB
  Каждый уровень модели OSI выполняет определенную задачу в процессе передачи данных по сети. Уровень 7 Applicayion layer A Прикладной Ур. Каждый уровень компьютераотправителя взаимодействует с таким же уровнем компьютераполучателя как будто он связан напрямую. Каждый уровень модели выполняет свою функцию.
25735. Каналы связи. Классификация каналов связи. Параметры каналов связи. Условие передачи сигнала по каналу связи 287 KB
  Канал связи — система технических средств и среда распространения сигналов для передачи сообщений (не только данных) от источника к получателю (и наоборот). Канал связи, понимаемый в узком смысле (тракт связи), представляет только физическую среду распространения сигналов, например, физическую линию связи.
25737. Рынок современной прессы 34.17 KB
  газет порядка 18 тыс. Преобладающим товаром и основным информационным носителем на рынке российской периодики как и прежде остаются газеты общий тираж которых в 2005 году составил 8 млрд 312 млн экз. из которых 29 млрд приходится на долю общероссийских газет. В отличие от газет подавляющее большинство журналов 916 наименований и 98 совокупного годового тиража приходится на Москву и СанктПетербург.
25738. Законодательство в сфере журналистики. Закон о СМИ 25.88 KB
  Право на получение информации одновременно означает обязанность государственных органов и органов местного самоуправления всех властных и общественных структур дать ответ на обращение к ним гражданина. Право производить и распространять информацию представляет собой творческий процесс по созданию информации в любой форме от книги до сигналов в космические дали и свободному ее распространению в том числе с помощью различных технических средств. Недопустимость идеологической ангажированности средств массовой информации закреплена в статье...