Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.12.2011, 22:22   #1
Gudzik11
Форумчанин
 
Регистрация: 20.10.2011
Сообщений: 138
По умолчанию цикл while

пытаюсь распарсить XML
тесть есть несколько тэгов <day я пытаюсь пронумеровать их так
Код:
procedure TForm1.Pogoda(Sender: TObject);
      var
        q: Integer ;
        s: string ;
 begin
   q:=1;
   GetDir(0,s);
    memo1.Text:=Utf8ToAnsi(IdHTTP1.Get('http://xml.weather.co.ua/1.2/forecast/19?dayf=5&userid=yoursite_com'));
    Memo1.Text:=Replace(Memo1.Text,'<?xml version="1.0" encoding="UTF-8"?>','<?xml version="1.0" encoding="windows-1251"?>');
   while  q<>40 do
   begin
    q:=q+1 ;
    Memo1.Text:=Replace(Memo1.Text,'</day','</day'+IntToStr(q));
    Memo1.Text:=Replace(Memo1.Text,'<day','<day'+IntToStr(q));
    Label1.Caption:= IntToStr(q);
   end;
   Memo1.Lines.SaveToFile(s+'\1.xml');
    {îòêðûâàåì XML}
    XMLDocument1.FileName:='1.xml';
    XMLDocument1.Active := true;
    Memo2.Text:=XMLDocument1.xml.Text ;
    XMLDocument1.Active := False ;
 end;

но на выходе получяю
<day4039383736353433323130292827262 524232221201918 171615141312111098765432
подскажите как сделать чтоб получялось
Код HTML:
<day1
<day2
<day3
Gudzik11 вне форума Ответить с цитированием
Старый 02.12.2011, 23:23   #2
TorrentTor
Форумчанин
 
Аватар для TorrentTor
 
Регистрация: 02.11.2011
Сообщений: 105
По умолчанию

Добавить #13#10 в строку например
Код:
(Memo1.Text+'</day'+'</day'+IntToStr(q)+#13#10)
TorrentTor вне форума Ответить с цитированием
Старый 03.12.2011, 00:25   #3
Gudzik11
Форумчанин
 
Регистрация: 20.10.2011
Сообщений: 138
По умолчанию

Вот сам проект
(удалено)
может сможет мне кто то помочь

Читаем правила.
Цитата:
Полный текст программы (в виде архива) может быть прикреплен по запросу кого-либо из форумчан, заинтересованных помочь вам.
З.Ы. Никто не обязан разбираться в вашей проблеме (программе). Ставьте конкретные вопросы и вам помогут.

Последний раз редактировалось mihali4; 03.12.2011 в 06:06.
Gudzik11 вне форума Ответить с цитированием
Старый 03.12.2011, 09:00   #4
3D Hunter
Сумрачная тень
Форумчанин
 
Аватар для 3D Hunter
 
Регистрация: 05.03.2009
Сообщений: 689
По умолчанию

Замени свой цикл так:
Код:
q:=1;
while  q<>40 do
begin
   Memo1.Lines[q-1]:=Replace(Memo1.Lines[q-1],'</day','</day'+IntToStr(q),[rfReplaceAll,rfIgnoreCase]);
   Memo1.Lines[q-1]:=Replace(Memo1.Lines[q-1],'<day','<day'+IntToStr(q),[rfReplaceAll,rfIgnoreCase]);
   Label1.Caption:= IntToStr(q);//зачем это выводить? непонятно
   Inc(q);
end;
И следи за диапазоном строк, чтобы в мемо их было не менее сорока.

Что за новости ??? Вы скоропостижно забыли, что код у нас принято оформлять спецтэгом, а не цитатой ?
Исправил...
"ковыряю изнутри" (с)

Последний раз редактировалось mihali4; 03.12.2011 в 18:15.
3D Hunter вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Цикл по времени - Как сделать так чтобы цикл выполнялся к примеру 10 секунд ? Anarki Общие вопросы C/C++ 3 13.11.2009 19:23
цикл ciaonataha Общие вопросы C/C++ 0 24.06.2009 18:47
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) Mr.User Помощь студентам 9 23.11.2007 01:34