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;


 

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

80497. Формування передумов ринкової економіки в країнах Європейської цивілізації (XVI – перша половина XVII ст.) 54.5 KB
  Основні аспекти розвитку господарства країн Західної Європи. Особливості економічного розвитку країн Центральної ПівденноСхідної і Східної Європи. Основні аспекти розвитку господарства країн Західної Європи Протягом 1618 ст. В економічному розвитку Західної Європи велику роль відіграли географічні відкриття кінця ХV початку XVI ст.
80498. Розвиток ринкового господарства в період становлення національних держав (друга половина XVII - перша половина XIX ст.) 113.5 KB
  Петті не був послідовним у своїй теорії трудової вартості. Звідси він змішує абстрактну працю як джерело вартості з конкретною працею як джерелом споживної вартості. Дійсно у створенні споживної вартості беруть участь і праця і земля: Труд батько багатства земля його мати . Але джерелом вартості згідно з теорією трудової вартості може бути тільки праця.
80499. Ринкове господарство країн Європейської цивілізації в період монополістичної конкуренції (друга половина XIX - початок ХХ ст.) 128 KB
  Основним його змістом були структурні зрушення в національних господарствах окремих країн внаслідок яких зявились нові й модернізувалися старі галузі виробництва змінювалась їхня роль в економіці. Почалася електрифікація виробництва транспорту побуту. Зростання продуктивних сил виникнення нових капіталомістких технологій вимагали значного укрупнення виробництва і великих капіталовкладень. Посилився процес концентрації виробництва і централізації капіталу.
80500. Предмет і методи історії економіки та економічної думки 57.5 KB
  Предмет і методи історії економіки та економічної думки 1. Предмет історії економіки та економічної думки. Періодизація історії економіки та економічної думки. Предмет історії економіки та економічної думки Економічне життя суспільства є надзвичайно багатогранним.
80501. Господарство первісного суспільства та його еволюція на етапі ранніх цивілізацій 74 KB
  Кожному із цих етапів світової історії були притаманні певні риси особливості здобутки матеріальної культури заняття та знаряддя праці. Для нього були характерними примітивні знаряддя праці збиральництво мисливство рибальство як основні види господарювання що свідчило про привласнювальний характер цієї епохи. У мезоліті середньому кам\'яному віці вдосконалювалися знаряддя праці первісних людей. Визначальними рисами міднобронзового віку були існування відтворюючого господарства швидкий розвиток орного землеробства тваринництва...
80502. Особливості господарського розвитку та економічної думки періоду формування світових цивілізацій (VІІІ ст. до н.е. – V ст. н.е.) 57 KB
  Особливості господарського розвитку та економічної думки періоду формування світових цивілізацій VІІІ ст. Це виявилося в економічному розвитку Греції і Риму. прогрес у землеробстві привів до відокремлення ремесла від сільського господарства й розвитку торгівлі між окремими районами Греції. Господарство Спарти було відсталим грошовий обмін не набув розвитку.
80503. Розроблення інвестиційної стратегії підприємства 199 KB
  Поняття інвестиційної стратегії її звязок із загальною стратегією економічного розвитку підприємства порядок розроблення. Принципи і послідовність розробки інвестиційної стратегії підприємств. Основні підходи до обґрунтування стратегічних цілей напрямів та форм інвестиційної діяльності.
80504. Управління фінансовими інвестиціями підприємства 140.5 KB
  Учасники ринку цінних паперів та їх функції. Ринок цінних паперів. Порядок формування портфеля цінних паперів. Боргові цінні папери формують кредитнопозикові відносини власника та емітента цінних паперів і характеризуються чіткою прогнозованістю інвестиційного доходу розмір якого можна визначити в будьякий момент їх обертання.
80505. Управління інноваційними інвестиціями підприємства 181 KB
  Управління інноваційними інвестиціями підприємства План лекції: Економічна сутність інновацій та інноваційного процесу Інструменти державної підтримки інноваційної діяльності в Україні. Економічна сутність інновацій та інноваційного процесу Основною формою реальних інвестицій є інноваційні інвестиції які реалізуються в процесі інноваційної діяльності підприємства.