Создать программу считывания произвольного файла и создание нового нетипизированного файла, копируя блоками - Pascal ABC
Формулировка задачи:
Создать программу считывания произвольного файла и создание нового нетипизированного файла, копируя блоками. Научиться использовать подпрограммы обработки директорий.
Решение задачи: «Создать программу считывания произвольного файла и создание нового нетипизированного файла, копируя блоками»
textual
Листинг программы
- Program Example6;
- { Program to demonstrate the BlockRead and BlockWrite functions. }
- Var Fin, fout : File;
- NumRead,NumWritten : Word;
- Buf : Array[1..2048] of byte;
- Total : Longint;
- begin
- Assign (Fin, Paramstr(1));
- Assign (Fout,Paramstr(2));
- Reset (Fin,1);
- Rewrite (Fout,1);
- Total:=0;
- Repeat
- BlockRead (Fin,buf,Sizeof(buf),NumRead);
- BlockWrite (Fout,Buf,NumRead,NumWritten);
- inc(Total,NumWritten);
- Until (NumRead=0) or (NumWritten<>NumRead);
- Write ('Copied ',Total,' bytes from file ',paramstr(1));
- Writeln (' to file ',paramstr(2));
- close(fin);
- close(fout);
- end.
Объяснение кода листинга программы
- В программе создаются две переменные типа File - Fin и fout, которые представляют собой файлы для чтения и записи соответственно.
- Далее определяются три переменные - NumRead, NumWritten и Buf.
- NumRead является переменной типа Word и будет использоваться для хранения количества прочитанных байт.
- NumWritten также является переменной типа Word и будет использоваться для хранения количества записанных байт.
- Buf - это массив типа byte, который будет использоваться для хранения прочитанных и записанных данных.
- Затем определяется общая переменная Total типа Longint, которая будет использоваться для подсчета общего количества записанных байт.
- Программа повторяется до тех пор, пока NumRead не станет равным нулю или NumWritten не будет отличаться от NumRead.
- Внутри цикла выполняются следующие действия:
- Вызывается функция BlockRead, которая считывает данные из файла Fin в массив Buf. Размер считываемых данных определяется переменной Sizeof(buf).
- Затем вызывается функция BlockWrite, которая записывает данные из массива Buf в файл fout. Количество записываемых данных определяется переменной NumRead.
- После этого увеличивается значение переменной Total на количество записанных данных.
- После окончания цикла выводится сообщение о количестве скопированных байт.
- Наконец, закрываются файлы Fin и fout с помощью функций close.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д