- •Строковый тип данных. Операции над строковыми типами.
- •Файловый тип данных в PascalAbc.Net, классификация файлов. Базовые операции над файлами (связывание с физическим файлом, инициация, переименование, удаление).
- •51.Особенности обработки текстовых файлов. Понятие файлового указателя. Чтение и запись в текстовые файлы.
- •Особенности обработки типизированных и нетипизированных файлов.
- •53.Подпрограммы. Применение подпрограмм при структурном подходе в программировании. Понятие процедур и функций. Область видимости переменных, локальные и глобальные переменные.
- •54.Обмен данными между основной программой и подпрограммой. Входные и выходные параметры. Формальные и фактические параметры. Объявление процедур и функций. Параметры-значения и параметры-переменные.
Файловый тип данных в PascalAbc.Net, классификация файлов. Базовые операции над файлами (связывание с физическим файлом, инициация, переименование, удаление).
Под файловым типом данных (файлом) понимается упорядоченная совокупность любого количества компонент одного типа.
Понятие файла носит широкий характер. В качестве файла может выступать обычный файл, который хранится на жестком диске, либо коммуникационный порт компьютера, устройство печати, клавиатура и т.д.
Работая с файлами, программист обычно имеет дело с операциями ввода/вывода. Под операцией вводы подразумевается перепись данных из входного файла (внешнего устройства) в основную память компьютера.
Операция вывода означает пересылку данных из основной памяти компьютера в выходной файл (т.е. внешнее устройство).
Инициировать файл - указать для него направление передачи данных.
Файл можно инициировать для
чтения,
записи,
дозаписи.
Инициация файла для чтения -
RESET(<файл. пер.>);
Инициация файла для записи -
WRITE(<файл. пер.>,<сп. вывода>);
REWRITE(<файл. пер>);
Инициация файла для дозаписи - APPEND(<файл. пер.>); - только текстовый файл!
Физическими файлами называют файлы, которые хранятся на периферийных устройствах. Имена физических файлов определяет ОС (операционная система). В Паскаль-программах имена файлов задают при помощи строк. К примеру файл на жестком диске может представляться в таком виде:
'laborant.txt'
'd:\file\primer.dat'
'Program Files'
Любые дисковые файлы становятся доступными программе после связывания их с файловой переменной, объявленной в программе. Все операции в программе производятся только с помощью связанной с ним файловой переменной.
Assign(f, FileName)
связывает файловую переменную f с физическим файлом, полное имя которого задано в строке FileName. Установленная связь будет действовать до конца работы программы, или до тех пор, пока не будет сделано переназначение.
После связи файловой переменной с дисковым именем файла в программе нужно указать направление передачи данных (открыть файл). В зависимости от этого направления говорят о чтении из файла или записи в файл.
Reset(f)
открывает для чтения файл, с которым связана файловая переменная f. После успешного выполнения процедуры Reset файл готов к чтению из него первого элемента. Процедура завершается с сообщением об ошибке, если указанный файл не найден.
Если f - типизированный файл, то процедурой reset он открывается для чтения и записи одновременно.
Rewrite(f)
открывает для записи файл, с которым связана файловая переменная f. После успешного выполнения этой процедуры файл готов к записи в него первого элемента. Если указанный файл уже существовал, то все данные из него уничтожаются.
Close(f)
закрывает открытый до этого файл с файловой переменной f. Вызов процедуры Close необходим при завершении работы с файлом. Если по какой-то причине процедура Close не будет выполнена, файл все-же будет создан на внешнем устройстве, но содержимое последнего буфера в него не будет перенесено.
EOF(f): boolean
возвращает значение TRUE, когда при чтении достигнут конец файла. Это означает, что уже прочитан последний элемент в файле или файл после открытия оказался пуст.
Rename(f, NewName)
позволяет переименовать физический файл на диске, связанный с файловой переменной f. Переименование возможно после закрытия файла.
Erase(f)
уничтожает физический файл на диске, который был связан с файловой переменной f. Файл к моменту вызова процедуры Erase должен быть закрыт.
IOResult
возвращает целое число, соответствующее коду последней ошибки ввода - вывода. При нормальном завершении операции функция вернет значение 0. Значение функции IOResult необходимо присваивать какой-либо переменной, так как при каждом вызове функция обнуляет свое значение. Функция IOResult работает только при выключенном режиме проверок ошибок ввода - вывода или с ключом компиляции {$I-}.
Процедуры переименования и удаления применяются только к закрытым файлам.
Процедура ReName(имя_файловой_переменной, новое_имя_файла); позволяет переименовать физический файл, связанный в программе с файловой переменной, присвоив ему новое_имя_файла, которое должно быть константой, переменной или выражением строкового типа.
Например: Assign(Fv1,'Phone_1.dat'); {Связать переменную Fv1 c файлом Phone_1.dat} ReName(Fv1,'Abonent.dbf'); {Переименовать Phone_1.dat в Abonent.dbf}
Процедура Erase(имя_файловой_переменной); удаляет (стирает) с внешнего носителя физический файл, связанный с файловой переменной.
Например: Assign(Fv1,'Phone_1.dat'); {Связать переменную Fv1 c файлом Phone_1.dat} Erase(Fv1); {Удалить Phone_1.dat}Попытка переименования или удаления несуществующего файла вызовет прерывание выполнения программы.
