Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
записи_и_файлы_20ноя2012.doc
Скачиваний:
12
Добавлен:
01.03.2025
Размер:
513 Кб
Скачать

Процедуры и функции для работы с файлами.

ASSIGN (имя_файла_в_программе, имя_файла_на_носителе) – процедура устанавливает связь между файловой переменной (имя_файла_в_программе) и файлом на носителе.

Здесь:

имя_файла_в_программе - это файловая переменная, т.е. идентификатор, объявленный в программе как переменная файлового типа.

имя_файла_на_носителе – текстовое выражение, содержащее имя файла . Перед именем файла на носителе может быть указан полный путь к файлу – имя диска, имена каталогов вышестоящих уровней, имя текущего каталога. Это единственное место в программе, где используется имя физического файла на носителе. Во всех остальных местах используется имя логического файла, имя файла в программе.

Примеры применения.

  1. Закрепление постоянного файла за программой:

ASSIGN ( F_PROG, ‘CONST_F.DAT’);

ASSIGN ( F_PROG, ‘C:\DIR1\CONST_F.DAT’);

Примечание: 1) если задано имя файла без префикса, то файл располагается в текущем каталоге; 2) при таких вариантах программа зависима от физического файла, с которым она работает.

  1. Возможность работы с различными файлами данной структуры:

WRITELN (‘ Введите полное имя файла на диске’);

READLN ( FILENAME);

ASSIGN ( F_PROG, FILENAME);

Пользователь с клавиатуры вводит полное имя с префиксом, например, C:\DIR1\CONST_F.DAT. Таким образом, достигается независимость программы от конкретного физического файла, т.е. можно обрабатывать различные физические файлы заданной структуры, одинаковой для всех обрабатываемых файлов

RESET (имя_файла_в_программе) – процедура открытия существующего файла

  • для чтения при последовательном доступе и

  • для чтения и записи при прямом доступе.

Указатель файла при этом устанавливается на первую запись (с 0 номером). Если файл с таким именем не существует, то происходит аварийное завершение программы.

REWRITE (имя_файла_в_программе) – процедура открытия создаваемого файла для записи. Если файл с таким именем не существовал, то он создается и начинается заполнение файла. Если файл с таким именем уже существовал, то он стирается, и заполнение файла начинается заново. Указатель файла устанавливается на первую запись (запись – она же компонент файла).

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

READ (имя_файла_в_программе, имя_переменной [,имя_переменной…] );

Указатель файла при этом передвигается на количество прочитанных компонентов (сколько переменных в списке).

READLN (имя_файла_в_программе, имя_переменной) применяется для чтения записей из текстового файла.

WRITE (имя_файла_в_программе, имя_переменной

[,имя_переменной…] );

– процедура записи содержимого переменных в файл согласно положению указателя. Указатель автоматически сдвигается на число записанных компонентов. На носитель (диск) записывается копия участка оперативной памяти, в которой находился очередной компонент (запись) файла, то есть внутреннее, машинное представление её информации, поэтому просмотр содержания файла простыми средствами (программа Блокнот, просмотр по клавише F3 в файловых менеджерах) практически невозможен. Необходимо наличие программы чтения записей из файла и вывода их содержания в отредактированном виде, например, на дисплей.

WRITELN (имя_файла_в_программе, имя_переменной) – применяется для записи компонента в текстовый файл.

SEEK (имя_файла_в_программе, номер_компонента) – процедура установки текущего указателя для чтения или записи требуемого компонента файла (в качестве номера компонента используется физический номер записи, или номер участка внутри файла). Используется для организации прямого доступа к записям типизированного файла, но может использоваться и при последовательном доступе записям типизированного файла.

CLOSE (имя_файла_в_программе) – процедура закрытия файла. Она обязательно должна использоваться после окончания работы с файлом, в особенности после создания файла, иначе может произойти потеря данных, находящихся в последнем буфере.

В одной программе файл может быть открыт и закрыт несколько раз с разными назначениями.

FILEPOS (имя_файла_в_программе) – функция определения номера текущей записи типизированного файла.

FILESIZE (имя_файла_в_программе) – функция определения общего количества записей типизированного файла.

EOF (имя_файла_в_программе) – функция определения признака конца файла (End Of File). Получает значение TRUE при чтении последней записи файла.

EOLN (имя_файла_в_программе) – функция обнаружения конца строки в текстовом файле (End Of Line). Имеет значение TRUE, если найден конец строки.

IORESULTфункция возврата условного признака последней операции ввода-вывода. Если операция завершилась успешно, функция возвращает нуль. Функция становится доступной только при отключенном автоконтроле ошибок ввода-вывода. Директива компилятора {$I-} отключает, а {$I+} – включает автоконтроль ошибок. Если автоконтроль отключен и операция ввода-вывода привела к возникновению ошибки, все последующие обращения к вводу-выводу блокируются, пока не будет вызвана функция IORESULT. Функция, как правило, применяется для контроля существования файла, с которым предстоит работать.

Пример проверки существования файла

{$I-}

RESET (<имя файла>);

{$I+}

IF IORESULT = 0

THEN { файл существует }

BEGIN

{ соответствующие действия }

. . .

END

ELSE { файл не существует }

BEGIN

{ другие соответствующие действия }

. . .

END

Внимание! «Соответствующие действия» зависят от решаемой задачи!

ERASE (имя_файла_в_программе) – процедура уничтожения файла. Открытый файл прежде должен быть закрыт (используется модуль DOS).

RENAME (старое_ имя_файла_на_носителе,

новое_имя_файла_на_носителе) – процедура для переименования файла. Используется после закрытия файла (используется модуль DOS).

Типы файлов в Паскале.

В Турбо Паскале предварительно определен следующий стандартный тип:

TYPE

TEXT = FILE OF CHAR;

В системе программирования Паскаль различаются 3 вида файлов:

  • файлы с типом записей (типизированные файлы);

Type

Rec = record

Inf1 : integer;

Inf2 : string [20];

End;

Var

Zap : rec; { выделение места в ОП

под компонент файла,

т.е. место для одной записи файла}

F1 : file of rec; { файл со структурой компонента,

логическойзаписи типа REC }

  • текстовые файлы со строками неопределенной длины;

Var f2 : text;

  • файлы без типа для передачи данных блоками записей.

VAR F3 : FILE;