- •Глава 6 Программирование в среде Delphi
- •§1. Разработка линейных программ
- •Этапы разработки программы
- •Целые типы
- •Символьный тип
- •Булевый тип
- •Переменные и константы
- •Оператор присваивания
- •Структура программы на языке Delphi
- •Некоторые функции преобразования типов
- •Среда программирования Delphi Главные составные части среды программирования
- •Структура проекта
- •Сохранение проекта
- •Структура модуля
- •Компиляция и выполнение проекта
- •§2. Стандартные и библиотечные функции в линейных программах
- •Некоторые стандартные библиотечные функции
- •Некоторые функции и процедуры даты
- •Ввод из окна ввода
- •Вывод в окно сообщения
- •Примечание
- •§ 3. Программы с разветвлениями
- •Логические выражения
- •Условный оператор
- •Оператор выбора
- •Оператор перехода
- •Компонент ListBox
- •Компонент tComboBox
- •Некоторые приемы работы с отладчиком
- •Примечание
- •§4. Циклы
- •Операторы цикла
- •Оператор цикла с параметром
- •Оператор цикла с предусловием
- •Оператор цикла с постусловием
- •Компонент Memo
- •§ 5. Использование массивов в программах, компонента Memo для ввода данных в массив
- •Массивы
- •Компонент Memo для ввода и вывода массивов
- •§ 6. Разработка многооконных проектов. Двумерные массивы. Компонент StringGrid
- •Компонент StringGrid
- •Технология создания многооконных проектов
- •Ввод и вывод двумерных массивов c помощью компонента StringGrid
- •§7. Внешние файлы
- •Процедуры работы с файлами
- •Главное меню
- •§8. Разработка внутренних процедур и функций
- •Процедуры
- •Функции
- •Литература
§7. Внешние файлы
В данном параграфе рассматриваются следующие вопросы: процедуры работы с файлами, создание главного меню,
использование стандартных диалогов
Теория
Процедуры работы с файлами
Файл ― это именованная структура данных, представляющая собой последовательность элементов данного типа, причем количество элементов последовательности практически не ограничено.
Файл должен быть объявлен в разделе описания переменных. В общем виде объявление файла:
Имя: file of ТипЭлементов;
Файл, компонентами которого являются данные символьного типа, называется символьным или текстовым. Описание текстового файла в общем виде:
Имя: TextFile;
где Имя ― имя файловой переменной, TextFile ― обозначение типа, показывающее, что Имя ― это файловая переменная, представляющая текстовый файл.
Примеры описания файлов:
Var Job: file of char; // файл символьного типа
Test: file of real; // файл вещественного типа
Fz: file of integer; // файл целого типа
My_File: TextFile; // файл текстового типа
Для того чтобы программа могла записывать результаты своей работы в файл или считывать исходные данные из файла, необходимо связать файловую переменную с конкретным файлом (задать имя файла).
Процедура AssignFile устанавливает физическую связь между файловой переменной f и строковой переменной ИмяФайла:
AssignFile (var f, ИмяФайла: string);
Примеры вызова процедуры AssignFile:
AssignFile(f, ‘d:\Мои документы\result.txt’);
AssignFile(Fin, ‘test011.txt’);
FileName:=’otchet1.txt’;
AssignFile(Fot, FileName); .
Прежде чем записывать информацию в файл необходимо его открыть. Возможны следующие режимы открытия файла для записи в него данных:
― перезапись (запись нового файла поверх существующего или создание нового файла);
― добавление в существующий файл.
Открыть для чтения файл можно с помощью процедуры Reset(f), где f — имя файловой переменной. Процедура Reset ищет файл, открывает его и устанавливает указатель на начало файла. Если файл не найден, выдается сообщение об ошибке ввода/вывода и программа завершает свою работу.
Открыть файл для записи позволяет процедура Rewrite(f), где f — имя файловой переменной. Процедура Rewrite(f) ищет файл, открывает его, стирает в нем старую информацию и устанавливает указатель на начало файла. Если файл не найден, он создается заново.
Для открытия файла с целью добавления в него информации служит процедура AppendFile(f), где f — имя файловой переменной. Процедура AppendFile открывает файл и устанавливает указатель на конец файла. Если файл не найден, выдается сообщение об ошибке ввода/вывода и программа завершает свою работу.
Для ввода (чтения) информации из файла предназначены процедуры:
Read(f,[список ввода]);
Readln(f,[список ввода]);
где f — имя файловой переменной,
список ввода — переменные, элементы массивов.
Процедура Readln имеет следующие особенности:
— после ввода данных указатель переносится на начало следующей строки;
— процедура используется только для текстовых файлов.
Для вывода (записи) данных в файл существует процедуры:
Write(f,[список вывода]);
Writeln(f,[список вывода]);
где f — имя файловой переменной,
список вывода — переменные, элементы массивов, константы.
Отличительными особенностями процедуры Writeln также является применимость ее только в случае текстовых файлов и перенос указателя на новую строчку.
После окончания всех действий с файлом он должен быть обязательно закрыт с помощью процедуры CloseFile(f), где f — имя файловой переменной.
Часто в программах при работе с файлами оказываются полезными функции EOF(f) и EOLN(f).
EOF(f) — логическая функция, принимает значение TRUE (истина), если обнаружен конец файла.
EOLN(f) — логическая функция, принимает значение TRUE (истина), если обнаружен конец строки.