Южно-Сахалинский институт экономики, права и информатики
Кафедра КТиС
Пояснительная записка к курсовой работе
по дисциплине: Языки программирования и методы трансляции
на тему: Потоки: TStream, TFileStream, TMemoryStream
Южно-Сахалинск
2010
Введение
Задачей курсовой работы является реализация программы для работы с файловой структурой операционной системы Windows. Для реализации программы требуется использовать интегрированную среду разработки Delphi7.
Цель работы – изучить принципы программирования файловой структуры в операционной системе Windows и создать программу для работы с потоками TStream, TFileStream и TMemoryStream. В проекте предполагается реализовать основные операции над потоками, такие как чтение, запись, удаление и редактирование.
Разрабатываемая система выполняет следующие функции:
1. позволяет создавать потоки TFileStream, TMemoryStream,
2. сохранение данных в файлы,
3. открытие и редактирование файлов при помощи потоков,
4. использовать данные из файлов в программе.
Для разработки приложения используются следующие программные инструменты:
1. среда разработки Delphi 7
1. Поток TStream
В основе иерархии классов потоков лежит класс Tstream. Он обеспечивает выполнение основных операций потока безотносительно к реальному носителю информации. Основными из них являются чтение и запись данных. Класс Tstream порожден непосредственно от класса TObject. Потоки также играют важную роль в чтении/записи компонентов из файлов ресурсов (DFM). Большая группа методов обеспечивает взаимодействие компонента и потока, чтение свойств компонента из ресурса и запись значений свойств в ресурс.
Таблица 1 - Свойства и методы класса Tstream
Объявление Описание property Position: Longint; Определяет текущую позицию в потоке property Size: Longint; Определяет размер потока в байтах function CopyFrom( Source: TStream; Count: Longint) : Longint; Копирует из потока Source Count байты, начиная с текущей позиции. Возвращает число скопированных байтов function Read(var Buffer; Count: Longint) : Longint; virtual; abstract; Абстрактный класс, перекрываемый в наследниках. Считывает из потока Count байты в буфер Buffer. Возвращает число скопированных байтов procedure Read3uffer (var Buffer; Count: Longint) ; Считывает из потока Count байты в буфер Buffer. Возвращает число скопированных байтов function Seek (Off set: Longint; Origin: Word): Longint; virtual; abstract; Абстрактный класс, перекрываемый в наследниках. Смещает текущую позицию в реальном носителе данных на Offset байтов в зависимости от условия Origin function Write (const Buffer; Count: Longint): Longint; virtual; abstract; Абстрактный класс, перекрываемый в наследниках. Записывает в поток Count байты из буфера Buffer. Возвращает число скопированных байтов procedure WriteBuffer (const Buffer; Count: Longint); Записывает в поток Count байты из буфера Buffer. Возвращает число скопированных байтов function ReadComponent (Instance: TComponent): TComponent; Передает данные из потока в компонент instance, заполняя его свойства значениями function ReadComponentRes (Instance: TComponent) : TComponent; Считывает заголовок ресурса компонента Instance и значения его свойств из потока. procedure ReadResHeader; Считывает заголовок ресурса компонента из потока procedure WriteComponent (Instance: TComponent) ; Передает в поток значения свойств компонента Instance procedure WriteComponentRes (const ResName: string; Instance: TComponent) ; Записывает в поток заголовок ресурса компонента Instance и значения его свойств
Итак, в основе операций считывания и записи данных в потоке лежат методы Read и Write. ............