Все действия с файлами осуществляются с помощью процедур и функций. Для каждого вида файлов существует набор процедур и функций, которые используются для работы с файлами, часть процедур и функций применима к любым видам файлов.
Набор процедур и функций для с файлами приведен в табл. 1-3.
Процедуры и функции для работы с файлами любого вида
Таблица 1
п/ф |
Запись |
Назначение |
Пример |
П |
ASSIGN(FP,IF);
ASSIGN- назначить;
FP- файл. пер.
IF- имя файла. |
Осуществляет логическую связь имени дискового файла с именем файловой переменной |
Assign
(f1,’D:\TP\BIN\inp.txt’); |
П |
RESET(FP); |
Открытие файла для чтения (ввода). В типизированном файле указатель перемещается на компоненту с номером 0 |
|
П |
REWRITE(FP); |
Открытие файла для записи (вывода). Создается новый файл или уничтожается содержимое старого. |
|
П |
CLOSE(FP); |
Закрывает файл, но связь с файловой переменной сохраняется. |
|
П |
RENAME(FP); |
Переименование связанного, но не открытого файла. |
Assign
(f1,’D:\TP\BIN\inp.txt’); Rename
(f1, ’D:\TP\BIN\d.txt’); |
П |
ERASE(FP); |
Удаление связанного, но не открытого файла. |
|
П |
CHDID(<путь>); |
Изменение текущего каталога. |
|
П |
MKDIR(каталог<>); |
Создание нового каталога. |
|
П |
GETDIR(<каталог>); |
Определяет имя текущего каталога. |
|
П |
RMDIR(<каталог>); |
Удаление каталога. |
|
Ф |
EOF(FP); |
Определяет конец файла (true-если достигнут конец файла) |
|
|
|
|
|
Процедуры и функции для работы с типизированными файлами
Таблица 2
п/ф |
Запись |
Назначение |
Пример |
П |
READ(FP,S); |
Считывает список значений из типизированного файла. |
|
П |
WRITE(FP,S); |
Выводит список значений в типизированный файл. |
|
П |
SEEK(FP,N); |
Устанавливает указатель на компоненту N. |
|
П |
TRUNCATE(FP); |
Фай усекается по положению указателя. |
|
Ф |
FILESIZE(FP); |
Возвращает размер файла. |
|
Ф |
FILEPOS(FP); |
Возвращает положение указателя |
|
Процедуры и функции для работы с текстовыми файлами
Таблица 3
П/Ф |
Запись |
Назначение |
Пример |
П |
READ(FP,S);
S- список пер. |
Считывает список значений из текстового файла. |
|
П |
READLN(FP,S); |
Считывает список значений из текстового файла с переводом строки. |
|
П |
WRITE(FP,S); |
Выводит список значений в текстовый файл. |
|
П |
WRITELN(FP,S); |
Выводит список значений в текстовый файл с переводом строки.. |
|
П |
APPEND(FP); |
Открытие связанного файла для дозаписи. Если был открыт, то закрывает и снова открывает. Указатель переводит в конец файла. |
|
Ф |
EOFLN(FP); |
Определяет конец строки (true-если достигнут конец строки) |
|
Ф |
SEEKEOLN(FP); |
Устанавливает указатель на конец строки |
|
Ф |
SEEKEOF(FP); |
Устанавливает указатель на конец файла |
|
Пример 15.1. В текстовом файле d1.txt расположен массив состоящий из 10 вещественных чисел: 0.54 1.7 4.56 0.2
1.32 1.54 18 0.98
5.6 7.7
Необходимо считать данные из файла, вычислить функцию
Результат вывести в текстовый файл d2.txt и на экран.
Текст программы
Program ftxtx; {Ввод с текстового файла и вывод в текстовый файл}
Uses CRT;
Const n=10;
Type
t=text;
mas=array[1..n] of real;
Var
f1,f2 :t;
x,y :mas;
i :byte;
Begin
ClrScr;
Assign(f1,'d1.txt'); Reset(f1); Assign(f2,'d2.txt'); Rewrite(f2);
For i:=1 to n do
begin
Read(f1,x[i]);
y[i]:=sqrt(abs(x[i]));
Writeln(f2,y[i]:10);
Writeln(y[i]:10);
end;
Readln;
Close(f2); Close(f1)
End.
Результат работы программы:
7.3E-0001
1.3E+0000
2.1E+0000
4.5E-0001
1.1E+0000
1.2E+0000
4.2E+0000
9.9E-0001
2.4E+0000
2.8E+0000
Пример 15.2. В текстовом файле d1.txt расположен массив состоящий из 10 вещественных чисел
0.54 1.7 4.56 0.2
1.32 1.54 18 0.98
5.6 7.7
Необходимо считать данные из файла, вычислить функцию
Результат вывести в типизированный файл d2.tip и на экран.
Текст программы
Program ftxti; {Ввод с текстового файла вывод в типизированный файл }
Uses CRT;
Const n=10;
Type
t=text;
mas=array[1..n] of real;
Var
f1 :t;
f2 :file of real;
x,y :mas;
i :byte;
Begin
ClrScr;
Assign(f1,'d1.txt'); Reset(f1);
Assign(f2,'d2.tip'); Rewrite(f2);
For i:=1 to n do
begin
Read(f1,x[i]);
y[i]:=sqrt(abs(x[i]));
Write(f2,y[i]);
Writeln(y[i]:10);
end;
Readln;
Close(f2); Close(f1)
End.
Результат работы программы:
А$Нэ?<Бг->ф&Вwgжк..щdЃ¬ХђЃ.Г Ш?ѓыf¶ГЂч{Tm}‚еЦћs‚FBБ—1
Пример 15.3. В типизированном файле d2.tip расположен массив состоящий из 10 вещественных чисел
Необходимо считать данные из файла, вычислить функцию
Результат вывести в текстовый файл d3.txt и на экран.
Текст программы
Program ftitx; { Ввод с типизированного файла вывод в текстовый файл }
Uses CRT;
Const n=10;
Type
t=text;
mas=array[1..n] of real;
Var
f1 :file of real;
f2 :t;
x,y :mas;
i :byte;
Begin
ClrScr;
Assign(f1,'d2.tip'); Reset(f1);
Assign(f2,'d3.txt'); Rewrite(f2);
For i:=1 to n do
begin
Read(f1,x[i]);
y[i]:=sqrt(abs(x[i]));
Writeln(f2,y[i]:10);
Writeln(y[i]:10);
end;
Readln;
Close(f2); Close(f1)
End.
Пример 15.4. В типизированном файле d2.tip расположен массив состоящий из 10 вещественных чисел
Необходимо считать данные из файла, вычислить функцию
Результат вывести в теипизированный файл d2.tip и на экран.
Текст программы
Program ftiti;
{ Ввод с типизированного файла и вывод в типизированный файл}
Uses CRT;
Const n=10;
Type
mas=array[1..n] of real;
Var
f1,f2 :file of real;
x,y :mas;
i :byte;
Begin
ClrScr;
Assign(f1,'d2.tip'); Reset(f1);
Assign(f2,'d3.tip'); Rewrite(f2);
For i:=1 to n do
begin
Read(f1,x[i]);
y[i]:=sqrt(abs(x[i]));
Write(f2,y[i]);
Writeln(y[i]:10);
end;
Readln;
Close(f2); Close(f1)
End.