Работа с составными типами данных в системе Turbo Pascal. Батхин А.Б - 29 стр.

UptoLike

Составители: 

close (fdat);
end.
Пример 3 (работа с нетипизированным файлом: программа быстрого копирования фай-
лов)
program f_copy;
var
f1, f2 : file;
n_r, n_w : word;
buf : array [1..2048] of char;
f_r, f_w : string;
begin
writeln('полное имя исходного файла ...');
readln(f_r);
writeln('файл для записи копии ...');
readln(f_w);
assign(f1, f_r); {открыть исходный файл}
reset(f1); {длина записи 1 байт}
assign(f2, f_w); {открыть файл-копию}
rewrite(f2, 1); {длина записи 1 байт}
writeln(filesize(f1),'байт копируется из',f_r,'в',f_w);
repeat
blockread(f1, buf, sizeof(buf), n_r);
blockwrite(f2, buf, n_r, n_w);
until (n_r = 0) or (n_w <> n_r);
close(f1);
close(f2)
end.
6.7. Контрольные вопросы и варианты индивидуальных заданий
Ответьте на следующие
вопросы.
1. Можно ли, считав из файла пятый элемент, затем сразу же считать второй? А какой
можно?
2. В какое место файла можно добавлять элементы: в начало, в середину, в конец, куда
угодно, никуда?
3. Можно ли сравнивать файлы или присваивать один файл другому?
4. Корректен ли следующий фрагмент?
Var
a: text;
b: file of integer;
c: file;
. . . . . . . . . . . . . . .
                 close (fdat);
           end.
Пример 3 (работа с нетипизированным файлом: программа быстрого копирования фай-
лов)
       program f_copy;
           var
                 f1, f2 : file;
                 n_r, n_w : word;
                 buf : array [1..2048] of char;
                 f_r, f_w : string;
           begin
           writeln('полное имя исходного файла ...');
                 readln(f_r);
                 writeln('файл для записи копии ...');
                 readln(f_w);
                 assign(f1, f_r);     {открыть исходный файл}
                 reset(f1);            {длина записи 1 байт}
                 assign(f2, f_w);           {открыть файл-копию}
                 rewrite(f2, 1);          {длина записи 1 байт}
                 writeln(filesize(f1),'байт копируется из',f_r,'в',f_w);
                 repeat
                     blockread(f1, buf, sizeof(buf), n_r);
                     blockwrite(f2, buf, n_r, n_w);
                 until (n_r = 0) or (n_w <> n_r);
                 close(f1);
                 close(f2)
           end.


               6.7. Контрольные вопросы и варианты индивидуальных заданий
Ответьте на следующие вопросы.
1. Можно ли, считав из файла пятый элемент, затем сразу же считать второй? А какой
   можно?
2. В какое место файла можно добавлять элементы: в начало, в середину, в конец, куда
   угодно, никуда?
3. Можно ли сравнивать файлы или присваивать один файл другому?
4. Корректен ли следующий фрагмент?
       Var
           a: text;
           b: file of integer;
           c: file;
       .   .     .   ............