Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 07.10.2011, 12:51
uhuhuh uhuhuh вне форума
Прохожий
 
Регистрация: 07.10.2011
Сообщения: 2
Репутация: 10
По умолчанию цикл в цикле

Добрый вам.
Чего-то я торможу.
Надо объединить два входящих файла в один исходящий, к каждой строке первого файла все строки второго. Не могу понять, почему в исходящем у меня только первая строка первого файла с каждой второго. Если поставить счетчик чтения строк первого файла, то показывает, что прочитал весь файл. Помогите, люди добрые.
Код:
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  
Старый 07.10.2011, 13:02
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

не хватает seek, а вобще брейкпоинт и f8 в помощь
Ответить с цитированием
  #3  
Старый 07.10.2011, 13:14
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Верно, вы же прочитали до конца второй файл и указатель стоит в конце. Сам он на начало не вернется.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #4  
Старый 07.10.2011, 13:08
chainik chainik вне форума
Начинающий
 
Регистрация: 30.06.2008
Сообщения: 140
Репутация: 8882
По умолчанию

циклы у тебя вложенные.
Поэтому во внешнем цикле ты должен
каждый раз переустанавливать указатель на первую запись
те
Код:
while not eof(f2) do
   begin
   reset(f1);
   while not eof(f1) do 
        begin
        readln(f1,...);
        ..........
        end;
   end;
в твоем примере чтение файла доходит до конца (EOF(f)=true)
и поэтому при повторном прохождении внешнего цикла он уже не читается
Ответить с цитированием
  #5  
Старый 07.10.2011, 13:14
uhuhuh uhuhuh вне форума
Прохожий
 
Регистрация: 07.10.2011
Сообщения: 2
Репутация: 10
По умолчанию

большое спасибо, протупил
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 01:43.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025