![]() |
|
|
#1
|
||||
|
||||
|
Задача наверняка не сложная, просто у меня опыта не хватает (пишу всего пару недель) .
Необходимо к каждой строке текстового файла f1 добавить строки файла f2. Код:
begin AssignFile(f1,PChar(Memo1.Text)); Reset(f1); While not EOF(f1) do begin ReadLn(f1,st1); AssignFile(f2,PChar(Memo2.Text)); Reset(f2); While not EOF(f2) do ReadLn(f2,st2); stM:= st1+' '+ st2; WriteLn(fMain, stM); end; CloseFile(f2); end; begin CloseFile(f1); CloseFile(fMain); end; Не работает. Почему-то из второго файла берет только последнюю строку |
|
#2
|
||||
|
||||
|
Цикл явно неправильно организован.
|
|
#3
|
||||
|
||||
|
Это еще слабо сказано - неправильно.
1. Вы неоговирили ситуацию, когда файлы неравны. 2. Вы действительно хотите к каждой строке первого файла прилепить ВСЕ строки второго. 3. Откуда взялся fMain помимо f1 и f2 оговореных в начале задачи? ПС: Общее ощущение, выдрали кусок кода и пытаететсь неразобравшись для своих целей использовать. |
|
#4
|
||||
|
||||
|
Кусок код выдрала из своей прожки. fMain - это файл в который сохраняется результат. Не стала открытие этого файла описывать в посте. Свою ошибку уже нашла. Всего лишь пропустила один begin. Теперь все работает, так что с циклами в коде все норм.
Код:
begin AssignFile(f1,PChar(Memo1.Text)); Reset(f1); While not EOF(f1) do begin ReadLn(f1,st1); AssignFile(f2,PChar(Memo2.Text)); Reset(f2); While not EOF(f2) do BEGIN ReadLn(f2,st2); stM:= st1+' '+ st2; WriteLn(fMain, stM); end; CloseFile(f2); end; begin CloseFile(f1); CloseFile(fMain); end; |
|
#5
|
||||
|
||||
|
Цитата:
зы: у мужиков мозг на несколько граммов тяжелее женщин ну это я так... |
|
#6
|
||||
|
||||
|
Цитата:
![]() |
|
#7
|
||||
|
||||
|
Цитата:
не пробовал но факт доказанный учёнными... |