Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мет_Паскаль_5_6.doc
Скачиваний:
4
Добавлен:
09.11.2019
Размер:
228.86 Кб
Скачать

Стандартные подпрограммы для всех файлов

Далее F – файловая переменная, связанная с конкретным физическим файлом процедурой Assign.

Assign(F, Name : String) – связь файловой переменной с внешним файлом с именем Name. Имя файла – имя файла MS DOS, может включать путь и не должно превышать 79 символов. Если Name пусто, то осуществляется связь со стандартным файлом ввода-вывода (как правило, консолью).

ChDir(Path : String) – изменение текущего каталога

Close(F) – закрытие открытого файла, с которым связана переменная F

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

MkDir(Path : String) – создание каталога с именем Path

Rename(F; NewName : String) – переименование внешнего файла

Reset(F[, Size]) – открытие существующего файла (для файлов без типа Size задает размер пересылаемого элемента в байтах, по умолчанию 128)

Rewrite(F[, Size]) – открытие нового файла. Если файл (с именем, которое ассоциировано с F процедурой Assign) уже существует, то он уничтожается

RmDir(Path : String) – удаление пустого каталога

Eof(F) – проверка на конец файла. Возвращает True, если указатель текущей компоненты файла находится за последней компонентой файла.

IOResult – результат последней операции ввода-вывода. Возвращает 0, если операция ввода-вывода завершилась успешно, и другое число – в противном случае.

Стандартные подпрограммы для текстовых файлов

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

var

F : Text;

Существует две стандартные файловые переменные для текстового файла: Input (связана по умолчанию с клавиатурой) и Output (по умолчанию связана с экраном дисплея). Эти устройства открываются автоматически при запуске программы, то есть фактически выполняются процедуры

Assign(Input,''); Reset(Input);

Assign(Output,''); Rewrite(Output);

и автоматически закрываются после работы программы.

Если при работе с текстовыми файлами в процедуре или функции не указана файловая переменная, то считается, что используются файловые переменные Input и Output.

Процедуры:

Append(F) – открытие файла для добавления в конец информации

Flush(F) – информация из буфера вывода записывается в выходной файл

Read(F, <список ввода>) – чтение информации из файла для списка переменных

Readln(F, <список ввода>) – то же, что и Read, но непрочитанная часть строки, включая признак строки пропускается

Write(F, <список вывода>) - запись информации в файл

Writeln(F, <список вывода>) - запись информации в файл, выводимая информация завершается концом строки

Функции:

Eoln(F) – возвращает True, если текущей компонентой файла является признак конца строки или функция Eof(F) принимает значение True

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

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

Пример 14:

var

F1, F2 : Text;

x, i : Integer;

begin

{$I-}

Assign(F1, 'source.txt');

Reset(F1);

{SI+}

if IOResult <> 0 then writeln('Файл не найден')

else begin

Assign(F2, 'dest.txt');

Rewrite(F2);

while not SeekEOF(F1) do begin

for I := 1 to 4 do

if not SeekEOF(F1) then begin

read(F1, x);

write(F2, x:10);

end;

writeln(F2);

end;

Close(F1);

Close(F2);

end;

end.

В примере 14 программа реализует чтение чисел из одного файла с именем source.txt (источник) и запись их по 4 числа в строке в другой с именем dest.txt (приемник). С помощью директивы {$I-} отключается контроль ввода вывода. Поэтому, если файла source.txt нет в текущем каталоге, вызов процедуры Reset(F1) не приведет к появлению ошибки. Далее с помощью функции IOResult анализируется результат выполненного открытия файла (с помощью вызова Reset(F1)). Открывается еще один файл с именем dest.txt для записи. В цикле из исходного файла считываются по 4 числа и записываются в файл-приемник. По окончании работы с файлами обязательно выполняются процедуры закрытия связанных с ними файловых переменных (процедура Close).

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

Символ конца строки (возврат каретки) имеет код 13. Символ конца файла имеет код 26. При вводе из файла, например, символа, читается один символ, в том числе и возврат каретки, если Eoln(F) дает true и символ конца файла, если Eof(F) дает true.

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

При выводе информации с помощью Write и Writeln осуществляется автоматическая перекодировка чисел в символьную форму, логической величины в слова TRUE и FALSE.

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

writeln(24,' ',26);

Исключение составляют вещественные числа – под них всегда отводится 17 позиций под мантиссу и 6 под порядок:

-2.00000000000000E+0000.

Стандартная форма вывода может быть изменена с помощью системы форматов:

write(Expression: M: N);

Expression – выражение, значение которого выводится в файл

M – число, определяющее размер поля, в которое выводится значение Expression, выравнивание числа по правому краю

N – используется только для вещественных чисел, определяет число знаков после десятичной точки.