Описание типа:
type <имя типа> = file of <тип компонентов (ЗАПИСЕЙ);> Этот тип можно назвать базовым типом для файла.
Например:
type dbfil = file of double; ar1 = array [1..20] of Integer;
fiar = file of ar1;
Описание файловых переменных:
var <имя переменной> = <имя типа (файлового)>; Например:
db1: dbfil; db2: file of double;
Описание типа:
type <имя типа> = file;> Например:
type nf = file;
Описание файловых переменных:
var <имя переменной> = <имя типа (файлового)>; Например:
fff: nf; fara: file;
Описание типа:
type <имя типа> = Text; (В Делфи: <имя типа> = TextFile)
Например:
type tx1 = Text;
Описание файловых переменных:
var <имя переменной> = <имя типа (файлового)>; Например:
tfu: tx1; ftx: text;
Дополнительно - текстовые файлы можно открыть для добавления данных в конец файла:
Append(<файловая переменная>); Например: Append(ftx);
Удобно при налаживании программы выводить данные, используя пары: close; append;
<записать порцию данных> close; append; <записать порцию данных>... и т д
Если убрать close, то нет гарантии, что все данные, которые "записаны" останутся в файле на диске.
Пример программы.
Убедимся, что файл, открытый процедурой rewrite
можно читать.
var f1: file of double; buf: double; ii: byte;
begin
Assign(f1, 'myfile.dub'); rewrite(f1);
for ii:= 1 to 9 do
begin buf:= 10*ii+ii/10;
write(f1,buf);
end;
seek(f1,4);
for ii:= 1 to 5 do
begin buf:= 77.7;
write(f1,buf);
end;
close(f1);
reset(f1);
while not eof(f1) do
begin
read(f1,buf);
writeln(buf);
end;
close(f1);
end.
(Файл MyFILE.DUB появился в той же папке, где
находится turbo.exe, а при запуске откомпилированного
файла, т е FILE1.EXE файл MyFILE.DUB появился
в той же папке, где находится FILE1.EXE. В обоих
случаях - в текущей папке)
---- Результат: -----
1.01000000000000E+0001
2.02000000000000E+0001
3.03000000000000E+0001
4.04000000000000E+0001
7.77000000000000E+0001
7.77000000000000E+0001
7.77000000000000E+0001
7.77000000000000E+0001
7.77000000000000E+0001
Если переменная-буфер имеет тип char, то данные в файле читаются посимвольно в соответствующие переменные.
Если переменная-буфер имеет тип string[N], то данные в файле читаются по N символов в соответствующие переменные, в частности, string - читается 255 символов. Если в файле встретится новая строка (#13#10) чтение данных из файла прекратится. Процедура readln делает то же самое, но способна читать признак конца строки (#13#10) и переходить к чтению следующей строки файла.