Запись текста в файл, чтение текста из файла, перепись текста из одного файла в другой файл - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Составить программу, в которой организованы следующие действия:
  • запись текста в файл, чтение текста из
  • файла, перепись текста из одного файла
  • в другой файл.
Эти действия оформить в подпрограммах. Обеспечить пользователю возможность выбирать нужную ему подпрограмму через интерфейс управления(саse)

Решение задачи: «Запись текста в файл, чтение текста из файла, перепись текста из одного файла в другой файл»

textual
Листинг программы
const
  f1n: string = 'f:\files\cost\free\file1.txt';
  f2n: string = 'f:\files\cost\free\file2.txt';
  eCreate: string = '*** Ошибка: не удалось создать файл ';
  eOpen: string = '*** Ошибка: не удалось открыть файл ';
var
  q: char;
  s: string;
  f1, f2: text;
procedure WriteF;
begin
  {$I-}
  Rewrite(f1);
  if IOResult <> 0 then begin
    WriteLn(eCreate, f1n);
    exit;
  end;
  {$I+}
  WriteLn('Введите текст. Завершение ввода - пустая строка.');
  repeat
    ReadLn(s);
    if s='' then Break;
    WriteLn(f1, s);
  until false;
  Close(f1);
end;
procedure ShowF;
begin
  {$I-}
  Reset(f1);
  if IOResult <> 0 then begin
    WriteLn(eOpen, f1n);
    exit;
  end;
  {$I+}
  WriteLn('Содержимое файла ', f1n);
  while not EOF(f1) do begin
    ReadLn(f1, s); WriteLn(s);
  end;
  Close(f1);
end;
procedure CopyF;
begin
  {$I-}
  Reset(f1);
  if IOResult <> 0 then begin
    WriteLn(eOpen, f1n);
    exit;
  end;
  Rewrite(f2);
  if IOResult <> 0 then begin
    WriteLn(eCreate, f2n);
    Close(f1);
    exit;
  end;
  {$I+}
  while not EOF(f1) do begin
    ReadLn(f1, s); WriteLn(f2, s);
  end;
  Close(f1); Close(f2);
end;
begin
  Assign(f1, f1n);
  Assign(f2, f2n);
  repeat
    WriteLn;
    WriteLn('1 - Запись файла');
    WriteLn('2 - Показ файла');
    WriteLn('3 - Копирование файла');
    WriteLn('0 - Выход');
    Write('Ваш выбор: '); ReadLn(q);
    case q of
    '0': ;
    '1': WriteF;
    '2': ShowF;
    '3': CopyF;
    else
      WriteLn('*** Ошибка: неправильный выбор.');
    end;
  until q='0';
end.

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

  1. Задача программы - управление файлами в папке cost на диске free.
  2. Введенный текст записывается в файл file1.txt и сразу же читается из него.
  3. Если при записи или чтении файла возникает ошибка, выводится сообщение об ошибке и программа завершается.
  4. Если введенный текст пуст, цикл чтения и записи прерывается.
  5. При показе содержимого файла file1.txt оно выводится построчно.
  6. При копировании содержимого файла file1.txt в файл file2.txt возможна ошибка, при которой программа прекращает работу.
  7. Цикл выбора действий продолжается до тех пор, пока пользователь не введет 0.
  8. Введенные пользователем действия выбираются с помощью оператора case.
  9. Если введенное действие не соответствует ни одному из ожидаемых (1, 2, 3), выводится сообщение об ошибке.

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


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

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

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