Банк рефератов содержит более 364 тысяч рефератов, курсовых и дипломных работ, шпаргалок и докладов по различным дисциплинам: истории, психологии, экономике, менеджменту, философии, праву, экологии. А также изложения, сочинения по литературе, отчеты по практике, топики по английскому.
Полнотекстовый поиск
Всего работ:
364150
Теги названий
Разделы
Авиация и космонавтика (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)
Иностранный язык (62792)
Информатика (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)
Остальные рефераты (21697)
Педагогика (7850)
Политология (3801)
Право (682)
Право, юриспруденция (2881)
Предпринимательство (475)
Прикладные науки (1)
Промышленность, производство (7100)
Психология (8694)
психология, педагогика (4121)
Радиоэлектроника (443)
Реклама (952)
Религия и мифология (2967)
Риторика (23)
Сексология (748)
Социология (4876)
Статистика (95)
Страхование (107)
Строительные науки (7)
Строительство (2004)
Схемотехника (15)
Таможенная система (663)
Теория государства и права (240)
Теория организации (39)
Теплотехника (25)
Технология (624)
Товароведение (16)
Транспорт (2652)
Трудовое право (136)
Туризм (90)
Уголовное право и процесс (406)
Управление (95)
Управленческие науки (24)
Физика (3463)
Физкультура и спорт (4482)
Философия (7216)
Финансовые науки (4592)
Финансы (5386)
Фотография (3)
Химия (2244)
Хозяйственное право (23)
Цифровые устройства (29)
Экологическое право (35)
Экология (4517)
Экономика (20645)
Экономико-математическое моделирование (666)
Экономическая география (119)
Экономическая теория (2573)
Этика (889)
Юриспруденция (288)
Языковедение (148)
Языкознание, филология (1140)

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

Название: Потоки TStream, TFileStream, TMemoryStream
Раздел: Рефераты по информатике, программированию
Тип: курсовая работа Добавлен 04:24:40 20 мая 2011 Похожие работы
Просмотров: 2653 Комментариев: 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
Object Pascal
1. Основы языка Object Pascal 1.1. Алфавит языка Основными символами языка Object Pascal являются: - символы _ - 26 больших и 26 малых латинских букв ...
Однако, в целях экономии памяти, повышения скорости чтения и записи данных, следует назначить именно тип Byte, который занимает всего 1 байт памяти, а не тип Word, который требует ...
Longint read FNativeError;
Раздел: Рефераты по информатике
Тип: реферат Просмотров: 2127 Комментариев: 4 Похожие работы
Оценило: 2 человек Средний балл: 4 Оценка: неизвестно     Скачать
Разработка баз данных в Delphi
Создание баз данных в Delphi Урок 1: Настройка BDE Содержание урока 1: Обзор 2 Сущность BDE 2 Алиасы 2 Системная информация утилиты настройки BDE 4 ...
поле длиной 4 байта, содержащее нередактируемое (read-only) значение типа long integer.
Когда Вы открываете таблицу, Delphi помещает Вас на первую запись; когда Вы вызываете метод First, Delphi также перемещает Вас в начало таблицы.
Раздел: Рефераты по информатике, программированию
Тип: реферат Просмотров: 7950 Комментариев: 3 Похожие работы
Оценило: 1 человек Средний балл: 5 Оценка: неизвестно     Скачать
Файловая оболочка (Delphi 30 )
Постановка задачи. Задача заключается в разработке файловой оболочки для операционной системы Windows"95/98. В программе реализовать механизмы ...
MainForm.StatusBar.Panels[0].Text:=CountDir(Directory.Directory)+' dir. & '+IntToStr(MainForm.FileList.Items.Count)+
LongInt;
Раздел: Рефераты по информатике, программированию
Тип: реферат Просмотров: 227 Комментариев: 2 Похожие работы
Оценило: 0 человек Средний балл: 0 Оценка: неизвестно     Скачать
Разработка файловой оболочки
Постановка задачи. Задача заключается в разработке файловой оболочки для операционной системы Windows"95/98. В программе реализовать механизмы ...
MainForm.StatusBar.Panels[0].Text:=CountDir(Directory.Directory)+' dir. & '+IntToStr(MainForm.FileList.Items.Count)+
LongInt;
Раздел: Рефераты по информатике, программированию
Тип: реферат Просмотров: 151 Комментариев: 3 Похожие работы
Оценило: 0 человек Средний балл: 0 Оценка: неизвестно     Скачать
Программирование на Delphi
Этот курс посвящен среде разработки Delphi фирмы Borland (известной также как Inprise), которая на протяжении многих лет успешно выдерживает (и ...
После этого Delphi, во-первых, создаст для объявленных свойств класса не- обходимые свойства и методы для чтения и записи в секции private.
Указатель на структуру Windows NT, содержащую информацию о правах доступа к каналу Pежимы потока байт и потока сообщений не слишком отличаются друг от друга - в первом случае ...
Раздел: Рефераты по информатике, программированию
Тип: реферат Просмотров: 3529 Комментариев: 3 Похожие работы
Оценило: 4 человек Средний балл: 4.5 Оценка: неизвестно     Скачать
Разработка программного обеспечения для оценки уровня знаний студентов ...
Дипломная работа РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ДЛЯ ОЦЕНКИ УРОВНЯ ЗНАНИЙ СТУДЕНТОВ С ПРИМЕНЕНИЕМ ТЕХНОЛОГИИ "КЛИЕНТ-СЕРВЕР" Москва 2010 Введение ...
Count:= Stream.
SetSize (Count+CurrSize); // расширяем поток (в смысле размера)
Раздел: Рефераты по информатике, программированию
Тип: дипломная работа Просмотров: 3474 Комментариев: 2 Похожие работы
Оценило: 0 человек Средний балл: 0 Оценка: неизвестно     Скачать
Технический словарь
A.........................................................................................2 B ...
input stream
головка чтения-записи
Раздел: Топики по английскому языку
Тип: топик Просмотров: 919 Комментариев: 2 Похожие работы
Оценило: 1 человек Средний балл: 2 Оценка: неизвестно     Скачать
Сжатие данных методами Хафмана и Шеннона-Фано
Введение Думая о данных, обычно мы представляем себе ни что иное, как передаваемую этими данными информацию: список клиентов, мелодию на аудио компакт ...
При использовании каждого из этих алгоритмов входные данные анализируются как поток байтов, и различным значениям байтов тем или иным способом присваиваются различные ...
В конце концов, внутри класса мы будем объединять восемь битов в байт, после чего выполнять запись байта.
Раздел: Рефераты по информатике, программированию
Тип: курсовая работа Просмотров: 4030 Комментариев: 3 Похожие работы
Оценило: 4 человек Средний балл: 4.3 Оценка: неизвестно     Скачать

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

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

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



Результаты(151189)
Комментарии (1843)
Copyright © 2005-2016 BestReferat.ru bestreferat@mail.ru       реклама на сайте

Рейтинг@Mail.ru