![]() |
|
|
#1
|
|||
|
|||
![]() Добрый вам.
Чего-то я торможу. Надо объединить два входящих файла в один исходящий, к каждой строке первого файла все строки второго. Не могу понять, почему в исходящем у меня только первая строка первого файла с каждой второго. Если поставить счетчик чтения строк первого файла, то показывает, что прочитал весь файл. Помогите, люди добрые. Код:
procedure TForm1.Button9Click(Sender: TObject); var f1,f2,f3:textfile; s1,s2:string; begin assignfile(f1,'8.txt'); assignfile(f2,'9.txt'); assignfile(f3,'10.txt'); reset(f1);reset(f2);rewrite(f3); s1:='';s2:=''; while not(eof(f1)) do begin readln(f1,s1); while not(eof(f2)) do begin readln(f2,s2); writeln(f3,s1+s2); end; end; closefile(f1); closefile(f2); closefile(f3); end; Последний раз редактировалось Admin, 07.10.2011 в 12:55. |
#2
|
|||
|
|||
![]() не хватает seek, а вобще брейкпоинт и f8 в помощь
|
#3
|
||||
|
||||
![]() Верно, вы же прочитали до конца второй файл и указатель стоит в конце. Сам он на начало не вернется.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#4
|
|||
|
|||
![]() циклы у тебя вложенные.
Поэтому во внешнем цикле ты должен каждый раз переустанавливать указатель на первую запись те Код:
while not eof(f2) do begin reset(f1); while not eof(f1) do begin readln(f1,...); .......... end; end; и поэтому при повторном прохождении внешнего цикла он уже не читается |
#5
|
|||
|
|||
![]() большое спасибо, протупил
|