Имена основных подпрограмм ввода-вывода (I/o):
Append Открывает существующий файл для добавления.
AssignFile Связывает имя внешнего файла с файловой переменной.
BlockRead Считывает одну или несколько записей из нетипизированного файла.
BlockWrite Записывает одну или несколько записей в нетипизированный файл.
ChDir Меняет текущий каталог.
CloseFile Закрывает открытый файл.
Eof Возвращает статус признака конца файла.
Eoln Возвращает статус признака конца строки.
Erase Удаляет внешний файл.
FilePos Возвращает текущую позицию указателя типизированного или
нетипизированного файла.
FileSize Возвращает текущий размер файла (не используется для текстовых
файлов).
Flush Очищает буфер выходного текстового файла.
GetDir Возвращает текущий каталог.
IOResult Возвращает целое число – статус выполнения последней выполненной
операции I/O.
MkDir Создает подкаталог.
Read Считывает значения из файла в переменные.
Readln Делает то же, что и Read, затем переводит указатель на начало
следующей строки текстового файла.
Rename Переименовывает внешний файл.
Reset Открывает существующий файл.
Rewrite Создает и открывает новый файл.
RmDir Удаляет пустой подкаталог.
Seek Перемещает указатель в указанное место типизированного или
нетипизированного файла (не используется для текстовых файлов).
SeekEof Возвращает статус признака конца текстового файла.
SeekEoln Возвращает статус признака конца строки текстового файла.
SetTextBuf Назначает буфер ввода-вывода текстового файла.
Truncate Обрезает типизированный или нетипизированный файл, начиная с
текущей позиции.
Write Записывает одно или несколько значений в файл.
Writeln Делает то же, что и Write, затем записывает маркер конца строки в
текстовый файл.
Параметры некоторых процедур, общих для всех типов файлов
Процедура |
Действие |
AssignFile (var f, <имя файла>:string) |
Связывает файловую переменную f с именем физического файла |
Reset(var f) |
Открывает файл с логическим именем f для чтения |
Rewrite(var f) |
Открывает файл с логическим именем f для записи |
Closefile (var f) |
Закрывает канал ввода-вывода с логическим именем f |
Rename (var f, <новое имя файла>: string) |
Переименовывает физический файл, связанный с логическим файлом f, придавая ему <новое имя>. Применимо только к закрытому файлу |
Erase(var f) |
Стирает (удаляет) файл f. Файл должен быть закрытым (и существовать) |
EOF(var f) |
Функция, принимающая значение true, если головка считывающего устройства достигла конца файла, и false – в противоположном случае |
К команде RESET(f) (т.е. организации чтения) можно обращаться многократно, при этом каждый раз считывание начинается с первого элемента.
К команде REWRITE(f) также можно обращаться многократно, но при этом вся предыдущая информация стирается полностью.
Между повторными установками RESET или REWRITE не обязательно закрывать файл (т.е. не обязательно использовать CLOSEFILE).
Команда CLOSEFILE (f) должна лишь ОДИН раз закрывать ОТКРЫТЫЙ файл. Если не закрыть, то ошибка не будет зарегистрирована, но в случае записи в файл (rewrite) будет записана не вся информация, а только та, которую удалось переправить посредством буфера.
В новом имени файла при переименовании нельзя менять название диска.
Текстовые файлы состоят из строк длиной от 0 до 256 символов. Признак конца строки – #13 (как и ENTER). Он объединен с символом #10. Признак конца файла – #26 (как и ^Z). Эти символы на экран не выводятся.
Числа при записи в текстовый файл автоматически преобразуются в строки, при чтении – наоборот.
Для чтения из файла используются функции:
Read(f,<список переменных>) – считывает одно или более значений из логического файла f в одну или более переменных, указанных в списке;
Readln(f,<список переменных>) – выполняет те же действия, что и процедура Read, а затем делает переход на начало следующей строки файла.
Для записи в файл используются функции:
Write(f,<список выражений>) – записывает результаты выражений из списка в файл с логическим именем f;
Writeln(f,< список выражений >) – выполняет те же действия, что и процедура Write, а затем делает переход на начало следующей строки файла.
По умолчанию размеры буфера для текстового файла – 128 бит. Для его изменения используется команда SetTextBoof(f, Buffer). Величина Buffer должна быть определена ранее в описательной части, например так:
Var Buffer : array[1..4*1024] of byte;
Эта команда должна быть использована до открытия файла (т.е. до команд RESET (f) или REWRITE(f)).
Рекомендуется размеры буфера устанавливать кратными 512: диск читается по секторам и дорожкам, длина считываемой информации колеблется от 512 до 4096 байт.
Дописывание текста (или чисел) в текстовый файл обеспечивается командой APPEND(f), которая должна употребляться только после CLOSE(f). После нее файл также должен быть закрыт.
Команды Eof(f) и SeekEOf(f) схожи; различие в том, что для SeekEOf(f) “прозрачны” пробелы, символы конца строки, символы #10 и символы табуляции #9.
Функция SeekEOLn(VAR FV:text):boolean возвращает True при достижении маркера конца строки, причем указатель файла пропускает все пробелы и знаки табуляции, предшествующие маркеру.
Функция SeekEOfF(VAR FV:text):boolean возвращает значение True, если указатель файла находится на маркере конца файла.
Пример
1. = 'AB*1', = 'DF#2', = 'KM@3', W = -12210-9, E = 156,
F = (1,2,3,4,5).
2.
Найти разность R между максимальным и
минимальным элементами массива
