Создать программу считывания произвольного файла и создание нового нетипизированного файла, копируя блоками - 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.

Объяснение кода листинга программы

  1. В программе создаются две переменные типа File - Fin и fout, которые представляют собой файлы для чтения и записи соответственно.
  2. Далее определяются три переменные - NumRead, NumWritten и Buf.
    • NumRead является переменной типа Word и будет использоваться для хранения количества прочитанных байт.
    • NumWritten также является переменной типа Word и будет использоваться для хранения количества записанных байт.
    • Buf - это массив типа byte, который будет использоваться для хранения прочитанных и записанных данных.
  3. Затем определяется общая переменная Total типа Longint, которая будет использоваться для подсчета общего количества записанных байт.
  4. Программа повторяется до тех пор, пока NumRead не станет равным нулю или NumWritten не будет отличаться от NumRead.
  5. Внутри цикла выполняются следующие действия:
    • Вызывается функция BlockRead, которая считывает данные из файла Fin в массив Buf. Размер считываемых данных определяется переменной Sizeof(buf).
    • Затем вызывается функция BlockWrite, которая записывает данные из массива Buf в файл fout. Количество записываемых данных определяется переменной NumRead.
    • После этого увеличивается значение переменной Total на количество записанных данных.
  6. После окончания цикла выводится сообщение о количестве скопированных байт.
  7. Наконец, закрываются файлы Fin и fout с помощью функций close.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.917 из 5
Похожие ответы