Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...
История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
Топ:
Определение места расположения распределительного центра: Фирма реализует продукцию на рынках сбыта и имеет постоянных поставщиков в разных регионах. Увеличение объема продаж...
Выпускная квалификационная работа: Основная часть ВКР, как правило, состоит из двух-трех глав, каждая из которых, в свою очередь...
Методика измерений сопротивления растеканию тока анодного заземления: Анодный заземлитель (анод) – проводник, погруженный в электролитическую среду (грунт, раствор электролита) и подключенный к положительному...
Интересное:
Распространение рака на другие отдаленные от желудка органы: Характерных симптомов рака желудка не существует. Выраженные симптомы появляются, когда опухоль...
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Влияние предпринимательской среды на эффективное функционирование предприятия: Предпринимательская среда – это совокупность внешних и внутренних факторов, оказывающих влияние на функционирование фирмы...
Дисциплины:
|
из
5.00
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
|
|
Потоки данных в Delphi представляют собой обобщенную модель двоичных данных, для унификации ввода/вывода на разные носители информации. Родоначальником всех потоков в Delphi является абстрактный класс TStream. Объекты класса TStream «умеют» открываться, читать, писать, изменять текущее положение и закрываться.
От этого класса порождены 6 специализированных потомков: TFileStraam (файловый поток), TMemoryStream (обмен данными с памятью), TStringStream (строковый поток), TBLOBStream (поток обмена данными с полями типа BLOB), TWinSocketStream (поток обмена с сокетамн). TOLEStream (используется в технологии СОМ). Каждый из этих потомком обладает возможностью сохранять в потоке или читать из него объекты - эт» способность является главным отличием потоков от обычных файловых операций. Поэтому, область их применения отлична от файлов - потоки находят применение в первую очередь при работе с компонентами.
Многие классы Delphi имеют унифицированные методы LoadFromStream и SaveToStream, которые обеспечивают обмен данными с потоками.
Свойства потоков представлены в табл. 5.9.
Таблица 5.9
| Свойство | Описание |
| property Position: Int64 read GetPosition write SetPosition; | Определяет текущую позицию потока, то есть то место, начиная с которого будет происходить обмен данными с программой |
| property Size: Int64 read GetSize write SetSize64; | Определяет размер потока в байтах. |
| property DataString: string read FDataString; | Содержит текущую строку, которая помещается в поток и читается из него(TStringStream). |
| property Handle: Integer read FHandle; | Дескриптор файла(TFileStream).? |
| property Memory: Pointer read FMemory; | Содержит указатель на область памяти,вкоторой размещается поток(TMemoryStream) |
| property TimeOut: Longint; | Содержит время в миллисекундах, по истечению которого связь через сокет обрывается (TWinSocketStream). |
Методы потоков класса TStreams представлены в таблице 5.10.
___________________ Таблица 5.10
| Метод | Описание | ||
| function CopyFrom (Source: TStream; Count: Longint): Longint; | Копирует из потокаSource Count байт, начиная с текущей позиции потока.Если Count=0, копируется весь потокSource.Возвращает число скопированных байтов. | ||
| function Read(var Buffer; Count: Longint): Longint; virtual; abstract- | Читает из потокаCount байт в буфер Buffer. Сдвигает текущую позициюнаколичество прочитанных байтов. Возвращает это количество. | ||
| procedure ReadBuffer (var Buffer; Count: Longint); | Читает из потокаCount байт и помещаетих и Buffer. ЕслиCount превышает размер потока от текущей позиции до конце возбуждает исключениеEStreamError. | ||
| function Seek(Offset: Longint; Origin: Word): Longint; virtual; abstract; | Смещает указатель потокаOffset в зависимости от условияOrigin. | ||
| function Write(conet Buffer; Count: Longint): Longint; virtual; abstract; | Записывает в потокCount байтов из переменнойBuffer. | ||
| procedure WriteBuffer(const Buffer; Count: Longint); | Записывает в потокCount байтов из переменнойBuffer. Если поток не может разместитьCount байтов, вызывается исключениеEStreamError. | ||
| function ReadComponent (Instance: TComponent): TComponent; | Читает компонент из потока и связывает его со свойствомInstance | ||
| function ReadComponentRes (Instance: TComponent): TComponent; | Читает компонент из ресурсного файла и связывает его со свойствомInstance | ||
| procedure WriteComponent (Instance: TComponent); | Записывает компоненты в поток. | ||
| procedure WriteComponentRes (const ResName: string; Instance: TComponent); | Записывает компоненты из ресурсного файла в поток. | ||
В основе операций считывания и записи данных в потоке лежат методы Read и Write. Именно они вызываются для реального выполнения внутри методов ReadBuffer и WriteBuffer, ReadComponent и WriteComponent. Эти методы являются абстрактными, они перекрываются в потомках, обеспечивая работу с конкретным физическим носителем данных потока.
Метод Seek используется для изменения текущей позиции в потоке: если Origin=soFromBeginning{0), то Offset определяет новую позицию в потоке; если Origin=soFromCurrent(l), позиция смещается на Offset байт к концу потока, если Origin=soFromEnd(2), позиция устанавливается на Offset байт от конца потока (в этом случае Offset задается отрицательным числом).
Группа методов обеспечивает чтение (ReadComponentRes) и запись (WriteComponentRes) из потока ресурса компонента. Они используются при создании компонента на основе данных о них, сохраненных в формате файлов ресурсов.
юз
|
|
|
Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...
Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...
Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...
© cyberpedia.su 2017-2025 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!