Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

Нужна помощь

-

Вопросы и ответы, обсуждения

- Ваши вопросы по Pascal/Delphi только в данном разделе

Ответ
 
Опции темы
Старый 07.04.2011, 16:42   #1
 Разведчик
Аватар для PuSh23
 
PuSh23 никому не известный тип
Регистрация: 22.06.2010
Сообщений: 4
Популярность: 18
Сказал(а) спасибо: 4
Поблагодарили 4 раз(а) в 2 сообщениях
 
По умолчанию Нужна помощь

Вот решил написать бота для приложения вконтакте (тюряга). Вообщем я сделал так чтобы бот отправлял post запрос на сервер, получал ответ. Ответ я парсил. Например на кол-во папирос, рублей и т.п. С этим проблем не возникало. Но проблемы возникли в другом, в этом же запросе есть информация о победах над боссами, записанная так:
Код:
<playerWins>
		<playerWin>
			<bossId>1</bossId>
			<droppedKeys>3</droppedKeys>
			<winCount>12</winCount>
		</playerWin>
		<playerWin>
			<bossId>2</bossId>
			<droppedKeys>1</droppedKeys>
			<winCount>1</winCount>
		</playerWin>
	</playerWins>
<bossId>1</bossId> - Это айди босса, <winCount>12</winCount> - колво побед данного босса. Мне необходимо кол-во побед над каждым боссов выводилось в label, но проблема в том что <winCount> везде одинаковый (Если бы они например писались <winCount1>, <winCount2>... то проблем бы у меня не возникло) Вообщем мне необходи помочь сделать так чтобы в каждом label'е выводилось кол-во побед над боссом, к примеру:
Кирпич: 12 (это <bossId>1</bossId>)
Сизый: 1 (это <bossId>2</bossId>)


Вот код как я получил запросы и попытался вывести победы:

Код:
procedure TForm1.Button5Click(Sender: TObject);
var
  Http  : TidHttp;
  CM    : TidCookieManager;
  Data  : TStringList;
  StrPage, UserID,  UserName, pp, kp, :  String;
  i : integer;
begin
  try
    Http := TIdHTTP.Create(Self);
    Data := TStringList.Create;
    CM := TidCookieManager.Create(Http);
    Http.AllowCookies := true;
    Http.CookieManager := CM;
    Http.HandleRedirects := true;

    Http.Request.Host:='109.234.156.250';
    Http.Request.UserAgent:='Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10';
    Http.Request.Accept:='text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
    Http.Request.AcceptLanguage:='ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3';
    Http.Request.AcceptCharSet:='windows-1251,utf-8;q=0.7,*;q=0.7';
    Http.Request.Referer:='http://cs4287.vkontakte.ru/u3691205/52d96e1188a225.zip';

    Data.Add('method=getInfo');
    Data.Add('sig=4b4d194a083007aa538f49d2a0cd6b5c');
    Data.Add('key=' + Edit2.Text);
    Data.Add('user=' + Edit1.Text);
    StrPage := Http.Post('http://109.234.156.250/prison/universal.php?getInfo', Data);



  finally
    Data.Free;
    CM.Free;
    Http.Free;
  end;



        ListBox2.Items.Add('-Обновление статистики');
         //Парсим Кол-во папирос
    pp:=copy(StrPage,pos('<money>',StrPage)+length('<money>'),pos('</money>',StrPage)-pos('<money>',StrPage)-length('<money>'));
    Label4.Caption:=pp;

      //Парсим кирпича
    kp:=copy(StrPage,pos('<bossId>1</bossId>',StrPage)+length('<bossId>1</bossId>'),pos('<bossId>1</bossId>',StrPage)-pos('<bossId>1</bossId>',StrPage)-length('<bossId>1</bossId>'));
     kp:=copy(StrPage,pos('<winCount>',StrPage)+length('<winCount>'),pos('</winCount>',StrPage)-pos('<winCount>',StrPage)-length('<winCount>'));
    Label21.Caption:=kp;
  Ответить с цитированием
Старый 08.04.2011, 13:22   #2
 Сержант
Аватар для АзЕсмьЦарь
 
АзЕсмьЦарь блестящий пример для подражанияАзЕсмьЦарь блестящий пример для подражанияАзЕсмьЦарь блестящий пример для подражанияАзЕсмьЦарь блестящий пример для подражанияАзЕсмьЦарь блестящий пример для подражанияАзЕсмьЦарь блестящий пример для подражанияАзЕсмьЦарь блестящий пример для подражанияАзЕсмьЦарь блестящий пример для подражанияАзЕсмьЦарь блестящий пример для подражанияАзЕсмьЦарь блестящий пример для подражанияАзЕсмьЦарь блестящий пример для подражания
Регистрация: 13.03.2011
Сообщений: 118
Популярность: 1812
Сказал(а) спасибо: 102
Поблагодарили 305 раз(а) в 76 сообщениях
 
По умолчанию Re: Нужна помощь

Странно, что программа вообще работает. На сколько я знаю у команды Copy - всего три параметра:
1) строка откуда копировать
2) с какой позиции
3) длина строки которую нужно скопировать
У тебя же этих параметров больше трёх. На да ладно - работает и фиг с ним.
Ну а непосредственно по вопросу могу посоветовать следующее. Благодаря уникальному ID босса - можно найти нужный кусок кода, дальше сместиться на нужную позицию - где идёт информация о победах и скопированное число поместить в свойство Caption у компонента Label. И всё это дело загнать в цикл, который будет выполняться до тех пор пока ID босса больше нуля - т.е. пока существует участок кода где можно скопировать нужную инфу.
  Ответить с цитированием
Ответ


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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна помощь) Vanderlord Общение и обсуждение, архив Lineage 2 6 19.11.2010 11:29
Нужна помощь SeerSalam Общение и обсуждение Perfect World 3 03.05.2010 10:30
Нужна помощь по приложению Город(помощь оплачу) legorii Баги игр ВКонтакте 1 10.03.2010 17:37
[Помогите!] Нужна помощь! Нужна аватарка! Flapes Треп 40 28.12.2009 20:07

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 08:16.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net