Банк рефератов содержит более 364 тысяч рефератов, курсовых и дипломных работ, шпаргалок и докладов по различным дисциплинам: истории, психологии, экономике, менеджменту, философии, праву, экологии. А также изложения, сочинения по литературе, отчеты по практике, топики по английскому.
Полнотекстовый поиск
Всего работ:
364141
Теги названий
Разделы
Авиация и космонавтика (304)
Административное право (123)
Арбитражный процесс (23)
Архитектура (113)
Астрология (4)
Астрономия (4814)
Банковское дело (5227)
Безопасность жизнедеятельности (2616)
Биографии (3423)
Биология (4214)
Биология и химия (1518)
Биржевое дело (68)
Ботаника и сельское хоз-во (2836)
Бухгалтерский учет и аудит (8269)
Валютные отношения (50)
Ветеринария (50)
Военная кафедра (762)
ГДЗ (2)
География (5275)
Геодезия (30)
Геология (1222)
Геополитика (43)
Государство и право (20403)
Гражданское право и процесс (465)
Делопроизводство (19)
Деньги и кредит (108)
ЕГЭ (173)
Естествознание (96)
Журналистика (899)
ЗНО (54)
Зоология (34)
Издательское дело и полиграфия (476)
Инвестиции (106)
Иностранный язык (62791)
Информатика (3562)
Информатика, программирование (6444)
Исторические личности (2165)
История (21320)
История техники (766)
Кибернетика (64)
Коммуникации и связь (3145)
Компьютерные науки (60)
Косметология (17)
Краеведение и этнография (588)
Краткое содержание произведений (1000)
Криминалистика (106)
Криминология (48)
Криптология (3)
Кулинария (1167)
Культура и искусство (8485)
Культурология (537)
Литература : зарубежная (2044)
Литература и русский язык (11657)
Логика (532)
Логистика (21)
Маркетинг (7985)
Математика (3721)
Медицина, здоровье (10549)
Медицинские науки (88)
Международное публичное право (58)
Международное частное право (36)
Международные отношения (2257)
Менеджмент (12491)
Металлургия (91)
Москвоведение (797)
Музыка (1338)
Муниципальное право (24)
Налоги, налогообложение (214)
Наука и техника (1141)
Начертательная геометрия (3)
Оккультизм и уфология (8)
Остальные рефераты (21692)
Педагогика (7850)
Политология (3801)
Право (682)
Право, юриспруденция (2881)
Предпринимательство (475)
Прикладные науки (1)
Промышленность, производство (7100)
Психология (8693)
психология, педагогика (4121)
Радиоэлектроника (443)
Реклама (952)
Религия и мифология (2967)
Риторика (23)
Сексология (748)
Социология (4876)
Статистика (95)
Страхование (107)
Строительные науки (7)
Строительство (2004)
Схемотехника (15)
Таможенная система (663)
Теория государства и права (240)
Теория организации (39)
Теплотехника (25)
Технология (624)
Товароведение (16)
Транспорт (2652)
Трудовое право (136)
Туризм (90)
Уголовное право и процесс (406)
Управление (95)
Управленческие науки (24)
Физика (3462)
Физкультура и спорт (4482)
Философия (7216)
Финансовые науки (4592)
Финансы (5386)
Фотография (3)
Химия (2244)
Хозяйственное право (23)
Цифровые устройства (29)
Экологическое право (35)
Экология (4517)
Экономика (20644)
Экономико-математическое моделирование (666)
Экономическая география (119)
Экономическая теория (2573)
Этика (889)
Юриспруденция (288)
Языковедение (148)
Языкознание, филология (1140)

Курсовая работа: Потоки TStream, TFileStream, TMemoryStream

Название: Потоки TStream, TFileStream, TMemoryStream
Раздел: Рефераты по информатике, программированию
Тип: курсовая работа Добавлен 04:24:40 20 мая 2011 Похожие работы
Просмотров: 2814 Комментариев: 2 Оценило: 0 человек Средний балл: 0 Оценка: неизвестно     Скачать

Южно-Сахалинский институт экономики, права и информатики

Кафедра КТиС

Пояснительная записка к курсовой работе

по дисциплине: Языки программирования и методы трансляции

натему: Потоки: 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; Копирует из потока SourceCount байты, начиная с текущей позиции. Возвращает число скопированных байтов
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. Именно они вызываются для реального выполнения операции внутри методов ReadBuffer и WriteBuffer, ReadComponent и WriteComponent. Так как класс TStream является абстрактным, то методы Read и write также являются абстрактными. В классах-наследниках они перекрываются, обеспечивая работу с конкретным физическим носителем данных.

Листинг 1 - создание, чтение и запись потока

Var

Stream: TStream; //Объявлениепотока

Begin

Stream := TMemoryStream.Create (...); //Созданиепотока

Stream.Read(...); //Чтение данных из потока

Stream.Write(...); //Запись данных в поток

Stream.Free; //Очистить поток

End;

Группа методов обеспечивает чтение и запись из потока ресурса компонента. Они используются при создании компонента на основе данных о нем, сохраненных в формате файлов ресурсов. Для чтения ресурса используется метод ReadComponentRes, в котором последовательно вызываются: метод ReadResHeader — для считывания заголовка ресурса компонента из потока; метод ReadComponent — для считывания значений свойств компонента. Для записи ресурса в поток применяется метод writeComponentRes.


2. Поток T FileStream

Объект TFileStream является потомком главного объекта TStream и позволяет получить доступ к диску, а так же создать поток для работы с файлами. При этом поток работает с файлом без учета типа хранящихся в нем данных.

Полное имя файла, который надо открыть, задается в параметре FileName. Этотпараметр — простаястрока:

constructor Create(const FileName: string; Mode: Word);

Параметр Mode определяет режим работы с файлом. Он составляется из флагов режима открытия: fmCreate — файл создается; fmOpenRead — файл открывается для чтения; fmopenwrite — файл открывается для записи; fmOpenReadWrite — файл открывается для чтения и записи.

И флагов режима совместного использования:

fmShareExciusive — файл недоступен для открытия другими приложениями;

fmShareDenyWrite — другие приложения могут читать данные из файла;

fmShareDenyRead — другие приложения могут писать данные в файл;

fmShareDenyNone — другие приложения могут производить с файлом любые операции. Создание потока аналогично примеру, рассмотренному в листинге 1.

Подробнее познакомимся с методами чтения, записи и внутренней структурой файла. Начнем со структуры. Когда вы открыли файл, позиция курсора устанавливается в самое начало и любая попытка чтения или записи будет происходить в эту позицию курсора. Если вам надо прочитать или записать в любую другую позицию, то надо передвинуть курсор. Для этого используется Метод Seek. "Точка отсчета" позиции зависит от значения параметра

Origin: soFromBeginning — смещение должно быть положительным и отсчитывается от начата потока;

soFromCurrent — смещение относительно текущей позиции в потоке;

soFromEnd — смещение должно быть отрицательным и отсчитывается от конца потока.

Не забывайте, что один байт - это один символ. Единственное исключение - файлы в формате Unicode. В них один символ занимает 2 байта.

Таким образом, надо учитывать, в каком виде хранится информация в файле.

Итак, если вам надо передвинуться на 10 символов от начала файла, можете написать следующий код:

Stream.Seek(10, SoFromBeginning) ;

Метод seek всегда возвращает смещение курсора от начала файла. Этим можно воспользоваться, чтобы узнать, где мы сейчас находимся, а можно и узнать общий размер файла. Если переместиться в конец файла, то функция вернет количество байт от начала до конца, т. е. полный размер файла.

В следующем примере устанавливается позиция в файле на 0 байт от конца, т. е. в самый конец. Тем самым получается полный размер файла:

Размер файла := Stream.Seek(0, soFromEnd);

Для чтения из файла нужно использовать метод Read. У этого метода два параметра:

1. Переменная, в которую будет записан результат чтения;

2. Количество байт, которые надо прочитать.

В листинге 2 рассмотрим пример чтения из файла с 20-й позиции

Листинг 2 – Чтения из файла, начиная с 20-й позиции.

Var Stream: TFileStream; //Переменная типа объект TFileStream. buf: array[0..10] of char; // Буфер для хранения прочитанных данных

begin // Далее открываем файл “Sample.wrk”. Stream:= TFileStream.Create('c:\Sample.wrk, fmOpenReadWrite); Stream.Seek(20, soFromBeginning); // Перемещениена20 символоввперед. Stream.Read(buf, 5); // Чтение 5 символов из установленной позиции. Stream.Free; // Очистка потока.

end;

Метод Read возвращает количество реально прочитанных байт (символов).

Если не произошло никаких проблем, то это число должно быть равно количеству запрошенных для чтения байт. Есть только два случая, когда эти числа отличаются:

1. При чтении был достигнут конец файла и дальнейшее чтение стало невозможным;

2. Ошибка на диске или любая другая проблема.

Для чтения применяется метод write. У него два параметра :

1. Переменная, содержимое которой нужно записать;

2. Число байт для записи.

Пользоваться этим методом можно точно так же как и методом для чтения.

3. Поток T MemoryStream

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

Для создания потока TMemoryStream используется конструктор Create без параметров:

Constructor Create;

Для чтения информации из файла с одновременным занесением ее в поток используется метод LoadFromFile:

Procedure LoadFromFile(const FileName: string);

файл поток класс метод

И аналогичный метод для записи содержимого потока в файл:

Procedure SaveToFile(const FileName: string);

метод для чтения информации из другого потока вне зависимости от его типа, а также метод записи хранимой информации в другой поток:

Procedure LoadFromStream(Stream: TStream);

Procedure SaveToStream(Stream: TStream);

Также, для потоков, работающих с оперативной памятью, определена

операция очистки содержимого с помощью метода Clear:

Procedure Clear;


Заключение

Потоки, описанные выше играют большую роль при создании проектов для работы с файлами и информацией, а так же являются неотъемлемой частью при работе с файловой структурой. Разработанное приложение отражает основные функции потоков TFileStream и TmemoryStream, демонстрирует способы чтения/записи файлов с помощью данных потоков. Я считаю что в теоретической части курсовой тема потоков раскрыта полностью и предоставляет всю необходимую информацию для их использования.


Список использованных источников

1. М. Фленов Библия Delphi/ М.Е. Флеонов-СПб.: БХВ-Петербург, 2007. -880с.

2. Http://proclub.ru –Клуб программистов.

3. Http://life-prog.ru –Языки программирования.

4. Http://Delphimaster.ru - Мастера DELPHI

5. http://www.delphi.3dn.ru - Архив материалов - Всё о delphi

6. http://www.delphiplus.org - Новости о языке программирования

7. http://www.delphiexpert.ru – Материал о Delphi

8. http://delphiworld.narod.ru - Материало Delphi

9. http://www.delphirus.com - Материал о Delphi

10. http://www.delphibasics.ru - Справочник - "Основы Delphi"


Приложение

В ходе выполнения курсовой работы было создано программное приложение «Streams.exe».

Рисунок 1- Интерфейс программы Streams.exe

Оценить/Добавить комментарий
Имя
Оценка
Комментарии:
Где скачать еще рефератов? Здесь: letsdoit777.blogspot.com
Евгений07:37:29 19 марта 2016
Кто еще хочет зарабатывать от 9000 рублей в день "Чистых Денег"? Узнайте как: business1777.blogspot.com ! Cпециально для студентов!
10:45:55 29 ноября 2015

Работы, похожие на Курсовая работа: Потоки TStream, TFileStream, TMemoryStream

Назад
Меню
Главная
Рефераты
Благодарности
Опрос
Станете ли вы заказывать работу за деньги, если не найдете ее в Интернете?

Да, в любом случае.
Да, но только в случае крайней необходимости.
Возможно, в зависимости от цены.
Нет, напишу его сам.
Нет, забью.



Результаты(173686)
Комментарии (1984)
Copyright © 2005-2017 BestReferat.ru bestreferat@gmail.com реклама на сайте

Рейтинг@Mail.ru