Запись текста в файл, чтение текста из файла, перепись текста из одного файла в другой файл - Free Pascal
Формулировка задачи:
Составить программу, в которой
организованы следующие действия:
- запись текста в файл, чтение текста из
- файла, перепись текста из одного файла
- в другой файл.
Решение задачи: «Запись текста в файл, чтение текста из файла, перепись текста из одного файла в другой файл»
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.
Объяснение кода листинга программы
- Задача программы - управление файлами в папке
costна дискеfree. - Введенный текст записывается в файл
file1.txtи сразу же читается из него. - Если при записи или чтении файла возникает ошибка, выводится сообщение об ошибке и программа завершается.
- Если введенный текст пуст, цикл чтения и записи прерывается.
- При показе содержимого файла
file1.txtоно выводится построчно. - При копировании содержимого файла
file1.txtв файлfile2.txtвозможна ошибка, при которой программа прекращает работу. - Цикл выбора действий продолжается до тех пор, пока пользователь не введет
0. - Введенные пользователем действия выбираются с помощью оператора case.
- Если введенное действие не соответствует ни одному из ожидаемых (1, 2, 3), выводится сообщение об ошибке.