program lab_6;
const {Описание констант}
recsize = 512; {длина блока}
var
filein, fileout: file; {файлы}
buf: pointer; {буфер}
pathin, pathout: string; {пути файлов}
n,size,q: integer; {вспомогательные переменные}
begin
{Запрос путей исходного и копируемого файлов}
{Инициализация файловых переменных}
{Открытие исходного файла с длиной блока 1 байт, для уточнения размера}
size:=filesize(filein);
{Определение количества считываний по 512 байт, и остатка файла}
q:=size div recsize;
n:=size mod recsize;
{Открытие файлов с длиной блока 512 байт}
{Выделение памяти буферу, копирование основной части файла, чистка памяти}
getmem(buf,q*recsize);
blockread(filein, buf^, q);
blockwrite(fileout, buf^, q);
freemem(buf);
{Открытие файлов с длиной блока 1 байт, для копирования остатка}
{Позиционирование на остаток файла}
seek(filein,q*recsize);
seek(fileout,q*recsize);
{Выделение памяти, копирование остатка, чистка памяти}
getmem(buf,n);
blockread(filein, buf^, n);
blockwrite(fileout, buf^, n);
freemem(buf);
end.
Введём в программу путь до исходного файла, который необходимо скопировать. Далее введём новый путь, по которому нужно сохранить копию файла. По завершении работы копия файла будет находиться по указанному пути.
Рисунок 1 – Результат работы программы
program lab_6;
const
recsize = 512;
var
filein, fileout: file;
buf: pointer;
pathin, pathout: string;
n,size,q: integer;
begin
write('Vvedite put ishodnogo faila: ');
readln(pathin);
write('vvedite put kopii faila: ');
readln(pathout);
assign(filein, pathin);
assign(fileout, pathout);
reset(filein, 1);
size:=filesize(filein);
q:=size div recsize;
n:=size mod recsize;
close(filein);
reset(filein, recsize);
rewrite(fileout, recsize);
getmem(buf,q*recsize);
blockread(filein, buf^, q);
blockwrite(fileout, buf^, q);
freemem(buf);
close(fileout);
close(filein);
reset(filein, 1);
reset(fileout, 1);
seek(filein,q*recsize);
seek(fileout,q*recsize);
getmem(buf,n);
blockread(filein, buf^, n);
blockwrite(fileout, buf^, n);
freemem(buf);
end.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.