
- •Внешние файлы
- •7.1Цель работы
- •7.2Задание
- •7.3Теоретические сведения
- •Структура физического файла
- •Структура логических файлов
- •Доступ к файлу, операции с файлами
- •Установка связи
- •Инициация файла
- •Процедуры чтения-записи
- •Закрытие доступа к файлу
- •Вспомогательные функции
- •Компоненты категории Dialogs
- •Основные свойства и методы tOpenDialog и tSaveDialog
- •Обработка типизованных файлов
- •Пример 1. Запись массива в типизованный файл
- •Пример 2. Запись в файл с использованием диалога
- •Пример 3. Чтение из типизованного файла
- •Пример 4. Чтение из типизованного файла с контролем ошибок
- •Обработка текстовых файлов Пример 5. Запись в тестовый файл
- •Пример 6. Добавление записей в конец тестового файла
- •Пример 7. Обработка текстового файла
- •Нетипизованные файлы
- •7.4Содержание отчета
- •7.5Контрольные вопросы
Компоненты категории Dialogs
Компоненты категории Dialogs позволяют создать ряд типовых диалоговых окон Windows, таких как окно выбора загружаемого файла, выбора шрифта, настройки принтера и т. д. Из компонентов категории Dialogs рассмотрим TOpenDialog - диалоговое окно выбора загружаемого файла и TSaveDialog - окно выбора каталога для сохранения файла. Задание свойств компонентов Dialogs производится в процессе конструирования, при выполнении программы компоненты становится невидимым.
Основные свойства и методы tOpenDialog и tSaveDialog
С
войства
и методы этих компонентов идентичны,
поэтому рассматриваются вместе.
Execute: Boolean – метод - вызывает диалоговое окно загрузки или сохранения файла, при успешном выполнении возвращает true.
FileName: String – свойство - получает значение выбранного имени файла.
Filter – вызывает окно Filter Editor для задания расширение файла. В поле Filter Name указывают тип файла, а поле Filtr - расширение файла.
Title: String – свойство – определяет текст заголовка окна диалога, по умолчанию – “Открыть” или “Сохранить как”.
Обработка типизованных файлов
При обработке типизованных файлов следует учитывать:
тип элементов файла – любой, кроме файлового.
все элементы типизованного файла должны быть одного типа.
чтение выполняется процедурой Read(F, список_считывания.)
запись выполняется процедурой Write(F, список_записи)
единицей считывания-записи могут быть только переменные того же типа.
Пример 1. Запись массива в типизованный файл
Дано: динамический массив целых чисел M; задан адрес файла D:\Stud\FM.Dat,
Требуется записать массива в файл FM.Dat.
В разделе implementation описаны:
Type Mas = Array of Integerl; //тип динамического массива
Var M: Mas; //массив для записи в файл Name
F : File of Integer; //файловая переменная
………………………………………
{текст процедуры обработки события, например “Нажатие кнопки”}
Var i: Byte; //счётчик цикла
begin
AssignFile(F, ‘D:\Stud\FM.Dat’); //физический файл D:\Stud\FM.Dat cвязан с F
ReWrite (F); {Направление передачи данных – запись. Если файл уже существует, то он будет уничтожен, а на его месте создан новый. Если файла с именем D:\Stud\FM.Dat не существует, то он будет создан)
For i := 0 to High(M) do
Write(F, M[i]); // запись i-го элемента во внешний файл
CloseFile(F); //закрыть доступ к внешнему файлу
End; //конец проц. обработки события
Пример 2. Запись в файл с использованием диалога
Дано: динамический массив целых чисел M. задан адрес файла D:\Stud\FM.Dat,
Требуется записать массив в файл D:\Stud\FM.Dat .
Постановка задачи:
установим компонент TSaveDialog;
активизируем окно диалога «Сохранить как»методом SaveDialog1.Execute;
выбираем каталог и задаём имя файла;
свойству SaveDialog1.FileName будет присвоено введённое имя файла;
устанавливаем связь между файловой переменной F и физическим файлом, AssignFile(F, SaveDialog1.FileName).
В разделе implementation описаны:
Type Mas = Array of Integerl;
Var M: Mas; //массив для записи в файл Name
F : File of Integer; //файловая переменная
………………………………………
{текст процедуры обработки события, например “Нажатие кнопки”}
Var i: Byte; //счётчик цикла
Begin
If SaveDialog1.Execute //если открыт диалог
then begin
AssignFile(F, OpenDialog1.FileName); {устанавливает связь между F и выбранным в диалоге файлом OpenDialog1.FileName }
ReWrite (F); //направление передачи данных – запись.
end;
For i := 0 to High(M) do
Write(F, M[i]); // запись i-го элемента во внешний файл
CloseFile(F); //закрыть доступ к внешнему файлу
End; //конец проц. обработки события