Записать из двух файлов в третий строки, которые начинаются на один и тот же символ - Pascal
Формулировка задачи:
Задание заключается в том, что нужно записать из двух файлов в третий строки, которые начинаются на один и тот же символ. Но у меня почему-то не записывается.
uses crt; var f1,f2,f3:text; a,b:string; begin assign(f1,'G:\12\f1.txt'); assign(f2,'G:\12\f2.txt'); assign(f3,'G:\12\f3.txt'); reset(f1); reset(f2); rewrite(f3); while not eof(f1)and eof(f2) do begin readln(f1,a); readln(f2,b); if a[1]=b[1] then writeln(f3,a,b); end; close(f3); while not eof(f1) do begin readln(f1,a); writeln(a); end; readkey; clrscr; while not eof(f2) do begin readln(f2,a); writeln(a); end; readkey; clrscr; reset(f3); Writeln('Итоговый файл:'); while not eof(f3) do begin readln(f3,a); writeln(a); end; close(f1); close(f2); close(f3); end.
Решение задачи: «Записать из двух файлов в третий строки, которые начинаются на один и тот же символ»
textual
Листинг программы
while (not eof(f1)) and (not eof(f2)) do
Объяснение кода листинга программы
- Две переменные, которые считывают строки из двух файлов:
- f1: файл 1
- f2: файл 2
- Условие для цикла while: цикл будет выполняться до тех пор, пока не достигнут конец файла для обоих файлов (eof).
- Внутри цикла while выполняется следующая инструкция:
- Если символ в строке из файла 1 равен символу в строке из файла 2, то выполняется следующая инструкция.
- Записывается строка из файла 1 в файл 3.
- Перемещается позиция чтения файла 1 в начало следующей строки.
- Перемещается позиция чтения файла 2 в начало следующей строки.
- Если символ в строке из файла 1 не равен символу в строке из файла 2, то выполняется следующая инструкция.
- Перемещается позиция чтения файла 1 в начало следующей строки.
- Перемещается позиция чтения файла 2 в начало следующей строки.
- Цикл while продолжается до тех пор, пока не будут выполнены условия для остановки (eof).