Записать в файл h общую часть двух исходных - Turbo Pascal
Формулировка задачи:
Дано текстовые файлы f и g. Записать в файл h такую общую их часть, что совпадает. Иначе вывести сообщение.
Как я понял, текст каждого файла присваиваем отдельной строковой переменной, но как найти общие части двух строк не знаю. Буду благодарен.
Решение задачи: «Записать в файл h общую часть двух исходных»
textual
Листинг программы
var
f,g,h:text;
c1,c2:char;
b:boolean;
begin
assign(f,'f');reset(f);
assign(g,'g');reset(g);
assign(h,'h');rewrite(h);
b:=false;
while not eof(f) do begin
read(f,c1);
if not eof(g) then begin
read(g,c2);
if c1=c2 then begin
write(h,c1);
b:=true;
end;
end;
end;
close(f);
close(g);
close(h);
if not b then writeln('files are different');
end.
Объяснение кода листинга программы
- Объявляются переменные f, g, h типа text, c1 и c2 типа char, а также b типа boolean.
- Выполняется инициализация переменных: assign(f,'f');reset(f); assign(g,'g');reset(g); assign(h,'h');rewrite(h);
- Переменная b инициализируется значением false.
- Запускается цикл while, который будет выполняться до тех пор, пока не будет достигнут конец файла f.
- Внутри цикла выполняется чтение символа из файла f в переменную c1 и, если файл g не пуст, то читается символ из файла g в переменную c2.
- Если символы в переменных c1 и c2 совпадают, то символ записывается в файл h, и переменная b устанавливается в значение true.
- По завершении цикла файлы f, g и h закрываются.
- Если значение переменной b равно false, то выводится сообщение 'files are different'.