Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
pr_7а_2011.doc
Скачиваний:
1
Добавлен:
17.12.2018
Размер:
132.61 Кб
Скачать

Процедура

RENAME(F,NewName:String)

переименовывает неоткрытый файл любого типа. Новое имя задается строкой NewName.

ERASE(F) –

Удаляет неоткрытый внешний файл любого типа, задаваемого переменной F.

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

Пример.

Program File_1;

Type

d=record

I1:Integer;

I2:Real

end;

Var

G:File;

F:Text;

St:String;

I,J:Byte;

FS:LongInt;

A:Real;

Buf:D;

Result:Word;

BEGIN

Assign(F,'C:\TP\BIN\File.dat');

Rewrite(F);

Write(F,Записана текстовая информация из программы FILE_1.dat');

CLOSE(F);

Rename(F,'C:\TP\BIN\NEW_File.dat');

Writeln('Файл File.dat переименован в файл NEW_FILE.Dat');

Writeln('Введите имя нетипизированного файла');

Readln(St);

Assign(G,ST);

Rewrite(G,8);

{Длина записи = 8 байт: 2- под тип Inyeger, 6- под тип Real}

For I:=1 to 5 do begin

Buf.I1:=I;

Buf.I2:=(10-I*2);

BlockWrite(G,Buf,1,Result);

end;

Close(G);

Rename(G,'RESC.drt');

Assign(G,'RESC.drt');

Reset(G,8);

FS:=FileSize(G);

For I:=1 to FS do begin

BlockRead(G,Buf,1,Result);

Writeln(Buf.I1:3,': Q= ',Buf.I2:9:5);

end;

Close(G);

Readln;

END.

Пример.

Вариант программы для проверки существования файла на диске:

Program Prow;

Var

F :File;

St :String;

BEGIN

Writeln(‘Введите имя файла: ‘);

Readln(St);

{$I-} {Отключить стандартную проверку ошибок}

Reset(F);

{$I+} {Включить стандартную проверку ошибок}

If IOresult=0 then begin

Writeln(‘Файл существует и нормально открыт!’);

Close(F);

end else Writeln(‘Файла с именем ’,St,’ на диске нет!’)

END.

Ioresult – специализированная стандартная функция. Функция возвращает параметр типа Integer (является кодом завершения операции). Если Ioresult-0 - операция ввода-вывода, открытия файла – прошла успешно. Использование ее возможно лишь при отключении стандартной проверки ввода-вывода. Для этого часто используют опцию компилятора {$I}. Вызов Ioresult очищает внутренний флаг ошибки. Поэтому повторный вызов функции к одной и той же операции ввода-вывода даст неверный результат.

Текстовый файл

Текстовый файл можно рассматривать как последовательность символов, разбитую на строки. Каждая строка завершается маркером конца строки. На практике такой маркер представляет собой последовательность двух символов: перевод строки Chr(13) и возврвт каретки - Chr(10).

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

Readln осуществляет те же действия, что и Read и дополнительно – чтение до маркера конца строки и переход к новой строке.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]