Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на языке Паскаль в среде Turbo Pascal версии 6 и 7 (Курс лекций). Воронов Г.И.Санкт-Петербург 2010г.doc
Скачиваний:
90
Добавлен:
15.04.2015
Размер:
754.69 Кб
Скачать

Стандартные процедуры работы с файлами

Данные процедуры и функции используются при работе с файлами любых типов. В этих и последующих процедурах (специальных для файлов разных типов) используются следующие обозначения параметров:

F - имя файловой переменной;

Name - переменная или константа типа строки, содержащая имя набора данных или стандартное имя устройства ввода/вывода;

Path - параметр, аналогичный Name, но содержит только путь к каталогу;

NewName - параметр, аналогичный Name, задает новое имя набора данных;

Size - константа или переменная целого типа, задает размер записи (в байтах) в файле без типа;

Num - переменная или константа целого типа, задает номер записи файла прямого доступа, начинается нумерация с нуля;

N - целое, количество записей, участвующее в операции;

Buf - имя переменной (обычно массива или строки) используемой в качестве буфера в операциях ввода/вывода,

Str - переменная типа строка.

Процедуры

Assign(F,Name) - связь файловой переменной с набором данных или устройством, заданным строкой Name.

ChDir(Path) - изменение текущего каталога на каталог, указанный в Path.

Close(F) - закрытие открытого файла.

Erase(F) - удаление из внешней памяти файла, связанного с переменной F.

GetDir(N,Str) - получение полного имени текущего каталога логического диска с номером N. Значения N: 0 - текущий каталог, 1 - текущий дискеты A, 2 - текущий дискеты B, 3 - диска С и т.д. Имя заносится в строку Str.

MkDir(Path) - Создание нового каталога, заданного путем Path.

Rename(F,NewName) - переименование внешнего файла, связанного с переменной F. Новое имя - в строке NewName.

Reset(F) - открытие существующего файла, связанного с F. Чтение или запись будут выполняться с начала файла.

Rewrite(F) - открытие нового файла, связанного с F для записи. Если такой файл существовал, он будет уничтожен и создан новый.

RmDir(Path) - удаление пустого не текущего каталога, заданного путем Path.

Функции

Eof(F) - проверка на конец файла. Принимает значение TRUE, если достигнут конец файла, иначе - FAULSE.

IOResult - код завершения последней операции ввода/вывода. Возвращает целочисленное значение кода ошибки или 0, если без ошибки. После применения функции код ошибки обнуляется.

Особенности работы с текстовыми файлами

Для работы с текстовым файлом файловая переменная описывается стандартным описателем Text:

VAR F1,F2:Text;

Дополнительно к процедурам открытия Reset и Rewrite можно использовать процедуру Append, которая позволяет записывать данные в конец существующего файла. В качестве параметров, передаваемых процедуре записи Write или Writeln, могут использоваться списки выражений, которые вычисляются перед выводом и, затем выводятся в файл F, возможно с использованием форматов вывода. В качестве параметров, передаваемых процедурам чтения Read или Readln должны быть имена простых переменных, переменных с индексом или строк. Количество параметров может быть любым, в том числе нулевым. Если в операторах отсутствует имя файла, транслятор подставляет стандартные имена Input (для ввода) и Output (для вывода). Эти файлы автоматически открываются и закрываются при завершении программы.

Текстовые файлы, из которых производится чтение числовых данных, должны содержать числовые значения, разделенные пробелами, знаками табуляции или символами конца строки. При вводе из файла данных в символьные переменные считывается по одному символу, в том числе - разделители, символ возврата каретки и символ перевода строки.

При чтении данных в строковые переменные, из файла выбирается столько символов, сколько объявлено при описании строковой переменной, однако, если достигается конец записи, строка заполняется не полностью. Переход на чтение новой записи файла (уже в другую строчную переменную!) выполнится только на новом операторе чтения, причем он должен быть Readln.

Ниже приводятся процедуры и функции, используемые при работе с текстовыми файлами, дополнительно к приведенным ранее.

Процедуры

Append(F) - открытие существующего файла для дозаписи в конец.

Flush(F) - немедленное освобождение буфера в выводной файл. Обычно физическое выполнение записи в файл осуществляется по заполнении буфера или по команде Close.

Read(F,<список ввода>) - чтение из файла начиная с текущего положения в переменные списка.

Readln(F,<список ввода>) - чтение из файла начиная с текущего положения в переменные списка. После чтения - переход на начало новой записи файла.

SetTextBuf(F,Buf,Size) - назначение в качестве буфера ввода/вывода для файла F переменной Buf (обычно какого-либо массива или строки). Если опущен необязательный параметр Size - используется вся память, занятая переменной Buf. Если процедуры нет, используется стандартный буфер длиной 128 байт.

Write(F,<список вывода>) - вывод данных в файл, начиная с текущего места в записи.

Writeln(F,<список вывода>) - вывод данных в файл, начиная с текущего места в записи. По окончании операции, переход на начало новой записи.

Функции

Eoln(F) - признак конца строки. Возвращает TRUE, если текущий указатель во входном файле достиг конца записи или конца файла, иначе возвращает значение FALSE.

SeekEof(F) - признак конца файла. Отличается от Eof(F) тем, что пропускает символы пробела и табуляции, стоящие в конце строки.

SeekEoln(F) - признак конца строки. Отличается от Eoln(F) тем, что пропускает символы пробела и табуляции, стоящие в конце строки.