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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 17.05.2009, 18:44
Аватар для Д'эльфийка
Д'эльфийка Д'эльфийка вне форума
Прохожий
 
Регистрация: 17.05.2009
Сообщения: 2
Репутация: 10
Вопрос Помогите с While

Задача наверняка не сложная, просто у меня опыта не хватает (пишу всего пару недель) .
Необходимо к каждой строке текстового файла 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  
Старый 17.05.2009, 19:29
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

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

Это еще слабо сказано - неправильно.
1. Вы неоговирили ситуацию, когда файлы неравны.
2. Вы действительно хотите к каждой строке первого файла прилепить ВСЕ строки второго.
3. Откуда взялся fMain помимо f1 и f2 оговореных в начале задачи?

ПС: Общее ощущение, выдрали кусок кода и пытаететсь неразобравшись для своих целей использовать.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #4  
Старый 18.05.2009, 15:51
Аватар для Д'эльфийка
Д'эльфийка Д'эльфийка вне форума
Прохожий
 
Регистрация: 17.05.2009
Сообщения: 2
Репутация: 10
По умолчанию

Кусок код выдрала из своей прожки. 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  
Старый 18.05.2009, 16:34
Аватар для AleD
AleD AleD вне форума
Активный
 
Регистрация: 21.02.2009
Адрес: г.Краснокаменск
Сообщения: 383
Репутация: 91
По умолчанию

Цитата:
Сообщение от Д'эльфийка
Кусок код выдрала из своей прожки. 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;
мда, помню когда я этот паскаль учил... как раз с этими begin..end; долго пыжился, чо за фигня, потом дошло, однако полностью синтаксис удалось выучить за 2 дня (чётко помню).........

зы: у мужиков мозг на несколько граммов тяжелее женщин ну это я так...
__________________
TAleD = class(TUser)
public
function HelpMe(ASubject, ARequest: String): String;
function GiveMeExample(ASubject: String): TStringList;
procedure WriteReview(APost: Integer; ADescription: TStringList);
end;
Ответить с цитированием
  #6  
Старый 18.05.2009, 17:07
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Цитата:
зы: у мужиков мозг на несколько граммов тяжелее женщин ну это я так...
типа они быстрее тонут?
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #7  
Старый 18.05.2009, 17:17
Аватар для AleD
AleD AleD вне форума
Активный
 
Регистрация: 21.02.2009
Адрес: г.Краснокаменск
Сообщения: 383
Репутация: 91
По умолчанию

Цитата:
Сообщение от Страдалецъ
типа они быстрее тонут?
хз не пробовал но факт доказанный учёнными...
__________________
TAleD = class(TUser)
public
function HelpMe(ASubject, ARequest: String): String;
function GiveMeExample(ASubject: String): TStringList;
procedure WriteReview(APost: Integer; ADescription: TStringList);
end;
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter