Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Чтение данных из файла

Работа с файлами.

Цель: научиться составлять программы чтения и записи файлов, продолжить освоение работы в системе программирования Delphi.

Теоретические сведения:

В зависимости от типа элементов различают три вида файла:

– файл из элементов определенного типа (типизированные файлы);

– файл из элементов, тип которых не указан (нетипизированный файл);

– текстовый файл, т.е. элементами являются текстовые строки.

Для работы с файлом в программе объявляется файловая переменная (логический файл) в разделе описания переменных:

Var имя_файла: file of тип_элементов;

После объявления файловой переменной, которая задает тип компонентов файла, необходимо связать файловую переменную с физическим файлом. Для этого используется процедура:

AssignFile (var f, имя_файла:String);

Функции и процедуры для работы с файлами:

Открытие файла для записи

– перезапись (запись нового файла поверх существующего или создание нового файла) – используется процедура

rewrite (файловая_переменная)

Запись в файл

Write (файловая_переменная, переменная)

Закрытие файла. Перед завершением работы все открытые файлы необходимо закрыть с помощью процедуры

CloseFile (файловая_переменная)

Открытие файла для чтения. Используется процедура Reset(файловая_переменная)

Чтение данных из файла

read (файловая_переменная, переменная)

Определение конца файла. Используется функция EOF (файловая_переменная). Значение функции равно false, если прочитанный элемент данных не является последним в файле, т.е. возможно дальнейшее чтение. Если прочитанный элемент файла является последним, то значение EOF равно true.

While not eof(f) do begin … end;

Seek ( var F; NumRec: Longint) – устанавливает позицию чтения-записи на элемент с номером NumRec; F – типизированный или нетипизированный файл.

FilePos (var F): Longint – возвращает для файла F текущую файловую позицию (номер элемента, на которую она установлена, считая от нуля).

FileSize (var F): Longint – возвращает число компонент в файле F.

Другие процедуры и функции работы с файлами см. в приложении.

Для работы с файлами можно использовать следующие визуальные компоненты: OpenDialog, SaveDialog и др, которые находятся на вкладке Dialogs. Это невизуальные, то есть, невидимые пользователю компоненты, которые выполняют стандартные для Windows диалоги пользователя и программы. Во всех диалогах есть один метод Execute логического типа, он возвращает True, если диалог с пользователем произошел успешно (например, пользователь выбрал открываемый файл), и False в противном случае (например, пользователь отказался от выбора файла). В связи с этим, диалоги обычно применяют вместе с проверкой: if OpenDialog1.Execute then...

В диалогах, связанных с файлами (OpenDialog – открыть файл, и SaveDialog – сохранить файл), есть свойство FileName, которое возвращает строку – адрес и имя выбранного файла.

Порядок выполнения работы:

1. Включите компьютер. В своей папке создайте ещё одну папку «Лабораторная работа №16». Запустите среду программирования Borland Delphi с рабочего стола. Сохраните весь проект в этой папке.

2. Переименуйте название формы из Form1, разместите на ней все необходимые вам компоненты.

Задача 1. Сформировать файл F, компонентами которого являются целые числа. Записать в файл C все четные числа файла F, а в файл N - все нечетные. Порядок следования чисел сохраняется.

Задача 2. Заполнить файл последовательного доступа f целыми числами, полученными с помощью генератора случайных чисел. Получить в файле g все компоненты файла f, которые делятся на t и не делятся на n.

Задача 3. Составить программу копирования файла из одной папки в другую.

Задача 4. Составить программу перемещения файла из одной папки в другую, используя диалоги и функции.

Задача 5. Записать в файл последовательного доступа N действительных чисел. Найти разность первого и последнего компонентов файла.

3. Проверьте работоспособность приложения. Сохраните проект.

Отчет по работе:

Оформите в тетради отчет, который должен содержать тему, цель работы, порядок выполнения (только формулировку задачи и программный код её решения), ответы на контрольные вопросы.

Контрольные вопросы:

Перечислите все используемые в работе (с расшифровкой): объекты (компоненты); свойства объектов; события объектов; методы; операторы и функции.

Приложение

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

procedure ChDir (Path: String); Изменяет текущий каталог. Path - переменная, задающая путь к устанавливаемой по умолчанию папке.
procedure Erase (var F); Уничтожает файл F. Перед выполнением процедуры файл должен быть закрыт процедурой CloseFile.
function FileAge (const FileName: String): Integer; Для файла FileName возвращает время его последнего обновления (в системном формате) или -1, если такого файла не существует.
function FileExists (const FileName: String): Boolean; Возвращает True, если файл FileName существует, и False в противном случае.
function FileGetDate (Handle: Integer): Integer; По заданному дескриптору файла Handle возвращает время и дату его создания (в системном формате). Если дескриптор не существует, возвращает -1.
function FindFirst (const Path: String; Attr: Integer; var F: TSearchRec): Integer; Возвращает в переменной F типа TSearchRec первый из файлов, зарегистрированных в указанном каталоге. Path: путь поиска с маской выбора файлов; Attr: атрибуты выбираемых файлов.
function FindNext (var F: TSearchRec): Integer; Возвращает в переменной F следующий файл в каталоге. Переменная F должна быть предварительно инициирована обращением к функции FindFirst.
procedure FindClose (var F: TSearchRec); Освобождает память, выделенную для поиска файлов функциями FindNext и FindFirst.
procedure Flush(var F); Очищает внутренний буфер файла, гарантируя тем самым сохранность всех последних изменений файла на диске.
procedure GetDir (D: Byte; var S: String); Возвращает текущий каталог (каталога по умлочанию). D - номер устройства (0: устройство по умолчанию, 1 - диск А, 2 - диск В и т.д.); S - переменная типа String, в которой возвращается путь к текущему каталогу на указанном диске.
procedure MkDir (Dir: String); Создаёт новый каталог на текущем диске. Dir - адрес нового каталога, который не может совпадать с именем уже существующего каталога.
procedure Rename (var F; NewName: String); Переименовывает, т.е. задаёт новые адрес и имя файла F. NewName - строковое выражение, содержащее новые адрес и имя файла. Перед выполнением процедуры необходимо закрыть файл.
procedure RmDir (Dir: String); Удаляет каталог Dir. Удаляемый каталог должен быть пустым, т.е. не содержать файлов или вложенных каталогов.

 

Поделиться:





Читайте также:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...