Регистрация Главная Сообщество
Сообщения за день Справка Регистрация
Навигация
Zhyk.org LIVE! Реклама на Zhyk.org Правила Форума Награды и достижения Доска "почета"

Как выдернуть из ответа количество?

-

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

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

Ответ
 
Опции темы
Старый 28.03.2011, 19:17   #16
 Пехотинец
Аватар для CaptainAmerica
 
CaptainAmerica на правильном пути
Регистрация: 17.12.2010
Сообщений: 50
Популярность: 68
Сказал(а) спасибо: 10
Поблагодарили 29 раз(а) в 26 сообщениях
 
По умолчанию Re: Как выдернуть из ответа количество?

string inputt - это та переменная, которая будет содержать ответ запроса с сервера (у тебя вроде string html)
а в лейблы распихивать переменные result_clan, result_exp и result_money
к примеру
label.Text = result_clan;
________________
[Ссылки могут видеть только зарегистрированные пользователи. ]
[Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Пользователь сказал cпасибо:
XRASER (29.03.2011)
Старый 29.03.2011, 13:14   #17
 Пехотинец
Аватар для XRASER
 
XRASER неизвестен в этих краяхXRASER неизвестен в этих краяхXRASER неизвестен в этих краяхXRASER неизвестен в этих краяхXRASER неизвестен в этих краяхXRASER неизвестен в этих краяхXRASER неизвестен в этих краяхXRASER неизвестен в этих краяхXRASER неизвестен в этих краяхXRASER неизвестен в этих краяхXRASER неизвестен в этих краях
Регистрация: 27.11.2010
Сообщений: 84
Популярность: -1831
Сказал(а) спасибо: 249
Поблагодарили 57 раз(а) в 27 сообщениях
Отправить сообщение для XRASER с помощью ICQ Отправить сообщение для XRASER с помощью Skype™
 
По умолчанию Re: Как выдернуть из ответа количество?

Цитата:
Сообщение от CaptainAmericaПосмотреть сообщение
string inputt - это та переменная, которая будет содержать ответ запроса с сервера (у тебя вроде string html)
а в лейблы распихивать переменные result_clan, result_exp и result_money
к примеру
label.Text = result_clan;

у меня тогда пусто получается, но я уже сделал так:
Код:
label2.Text = "нихуя";
          label4.Text = mass[12];
          label6.Text = mass[13];
          label8.Text = mass[14];
          label13.Text = mass[26];
что нужно во здесь вписать:
Код:
Regex rex = new Regex(@"[^0-9]{1,}");
Чтобы получить: [РБ] club24923333, так как здесь есть русские, английский и цифры...

Добавлено через 2 минуты
У меня новый вопрос: Как сделать чтобы при нажатии на linkLabel1 открывалась какая-то ссылка?
________________
[Ссылки могут видеть только зарегистрированные пользователи. ] - сообщество серверов MineCraft.
RPG, Survival, Hi-Tech сервера. 24\7. Без лагов.

Последний раз редактировалось XRASER; 29.03.2011 в 13:16. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 29.03.2011, 13:37   #18
Читер-спонсор
 Рыцарь-защитник
Аватар для Nickitee
 
Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(
Регистрация: 28.08.2009
Сообщений: 603
Популярность: 19129
Золото Zhyk.Ru: 500
Сказал(а) спасибо: 84
Поблагодарили 602 раз(а) в 321 сообщениях
 
По умолчанию Re: Как выдернуть из ответа количество?

Заметь, что если ты юзаеш массив строк, то не всегда ответ может находится на той же 11 строке и так далее, поэтому я уже не раз предлагал остальным, делать поиск строки:
Код:
            string obrabotka = ОТВЕТсСЕРВЕРА.
            string[] stringSeparators = new string[] { "\n" };
            string[] result = obrabotka.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries);
            foreach (string FindStroke in result)
            {

                if (FindStroke.IndexOf("money") != -1)
                {
                 string[] MassivStroki = FindStroke.Split((Convert.ToChar(">"))); //Разделяем строку символом ">"
                 label1.Text = MassivStroki[1].Replace("</money", ""); //[0] Будет возращать всё что идёт до первого ">", [1] Вернёт всё что после первого ">", так же удаляем то что осталось на конце.
                }
            }
PROFIT.

Добавлено через 4 минуты
Чтобы открывалась ссылка, поставь linkLabel1 эвент "Click" код:
Код:
            System.Diagnostics.Process.Start("http://google.com");
Если ты уже подключил System.Diagnostics (using System.Diagnostics)
то просто:
Код:
            Process.Start("http://google.com");
p.s. Ссылка откроется в бравзере по умолчанию.
p.s.2. Обязательно ссылки с "http://", без этого, ссылка не будет считаться ссылкой.

Добавлено через 8 минут
Так же если в тюряге, русские буквы, например если вернуть Имя, оно будет каракулями, для этого нам нужен декодер:
Код:
  if (FindStroke.IndexOf("<name>") != -1)
                        {
                            string[] Namee = stroka.ToString().Split((Convert.ToChar(">")));
                            label2.Text = Uri.UnescapeDataString(Namee[1].ToString().Replace("</name", ""));

                        }
И всё прекрасно работает. Имя возвращается в правильно формате.
________________
We are Ducks. We are birds. We like bread. We cryack. Cryack.

Последний раз редактировалось Nickitee; 29.03.2011 в 13:46. Причина: Добавлено сообщение
  Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
TeedI (01.04.2011), XRASER (29.03.2011)
Старый 29.03.2011, 14:18   #19
 Пехотинец
Аватар для XRASER
 
XRASER неизвестен в этих краяхXRASER неизвестен в этих краяхXRASER неизвестен в этих краяхXRASER неизвестен в этих краяхXRASER неизвестен в этих краяхXRASER неизвестен в этих краяхXRASER неизвестен в этих краяхXRASER неизвестен в этих краяхXRASER неизвестен в этих краяхXRASER неизвестен в этих краяхXRASER неизвестен в этих краях
Регистрация: 27.11.2010
Сообщений: 84
Популярность: -1831
Сказал(а) спасибо: 249
Поблагодарили 57 раз(а) в 27 сообщениях
Отправить сообщение для XRASER с помощью ICQ Отправить сообщение для XRASER с помощью Skype™
 
Question Re: Как выдернуть из ответа количество?

1. поиск строки как-то до меня не доходит, а вот в массиве вроде разобрался...
2. С русскими буквами как - то не понял, какой еще де-кодер?
Что обозначает FindStroke и stroka, не знаю на что их заменить из моего кода...
3. За linkLabel1 спасибо.
4. Как можно сделать, чтобы при 3-х значениях label13 выполнялись разные действия, как сделать на 2 знаю, у меня вот такой код:
Код:
if (label13.Text != textBox3.Text)
                    {
                        try
                        {

                        }
                        finally
                        {
                            timer1.Start();
                        }
Мне нужно сделать так:
1. Если label13.Text != textBox3.Text - тогда идет выполнение запросов на сервер.
2. Если label13.Text = "" - Стоп
3. Если label13.Text = textBox3.Text - Стоп
Код на стоп: timer1.Stop(); - Знаю.
Как сделать на 3 варианта не понимаю...
Можно пример...
P.S. CaptainAmerica, чтобы я делал без тебя... оказываешь большую помощь... спасибо тебе...

Добавлено через 2 часа 38 минут
Нужно найти XP с такого ответа:
Код:
{"c":"attboss","st":"1301403211","bfinfo":{"hp":"1000","et":"1301432900","lk":"0","nkt":"0","id":"1","wn":"Владимир Григорьев","wi":"http://cs10386.vkontakte.ru/u40577101/e_8e944154.jpg","wl":"12","wc":"151","np":"0","gk":[{"id":"2","cnt":"3"},{"id":"3","cnt":"4"}],"kl":[],"ds":[]}}
там она 2 - mass[2], а здесь она 3 - mass[3]
Код:
{"c":"attboss","st":"1301403179","user":{"exp":"37974"},"bfinfo":{"hp":"0","et":"1301431537","lk":"6","nkt":"1301423444","id":"1","wn":"Антон Зубарев","wi":"http://cs562.vkontakte.ru/u8005216/e_f3d75697.jpg","wl":"54","wc":"151","np":"0","gk":[{"id":"2","cnt":"3"},{"id":"3","cnt":"4"}],"kl":[{"id":"180927","d":"20"},{"id":"195868","d":"20"},{"id":"330921","d":"20"},{"id":"161235","d":"20"},{"id":"165506","d":"20"},{"id":"232964","d":"20"},{"id":"219834","d":"20"},{"id":"268299","d":"20"},{"id":"375641","d":"20"},{"id":"195154","d":"20"}],"ds":[{"id":"195868","d":"40"},{"id":"184240","d":"40"},{"id":"180927","d":"40"},{"id":"162890","d":"40"},{"id":"587132","d":"20"},{"id":"568534","d":"20"},{"id":"397510","d":"20"},{"id":"375641","d":"20"}],"res":"1","gi":["47"]}}
Как это можно сделать через поиск стороки чтобы не менять каждый раз...
код на ответ стоит вот такой:
Код:
// Получаем ответ
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                // Получаем html-код страницы
                Regex rex = new Regex(@"[^0-9]{1,}");
                string html = new StreamReader(response.GetResponseStream(), Encoding.UTF8).ReadToEnd();
                string[] mass = rex.Split(html);
                string result = mass[2]; // именно этот элемент массива будет содержать твое число
                label1.Text = mass[2];
Что и куда нужно дописать, если делать через поиск строки?
________________
[Ссылки могут видеть только зарегистрированные пользователи. ] - сообщество серверов MineCraft.
RPG, Survival, Hi-Tech сервера. 24\7. Без лагов.

Последний раз редактировалось XRASER; 29.03.2011 в 16:58. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 29.03.2011, 21:59   #20
 Разведчик
Аватар для S.e.n.s.o.R
 
S.e.n.s.o.R никому не известный тип
Регистрация: 17.01.2011
Сообщений: 10
Популярность: 10
Сказал(а) спасибо: 10
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Как выдернуть из ответа количество?

А как написать, чтобы ответ показывался в labbel (весь ответ)
labbel1.Show(html); ошибку пишет
________________
Драконы воруют детей

Последний раз редактировалось S.e.n.s.o.R; 29.03.2011 в 22:03.
  Ответить с цитированием
Старый 29.03.2011, 23:05   #21
 Пехотинец
Аватар для CaptainAmerica
 
CaptainAmerica на правильном пути
Регистрация: 17.12.2010
Сообщений: 50
Популярность: 68
Сказал(а) спасибо: 10
Поблагодарили 29 раз(а) в 26 сообщениях
 
По умолчанию Re: Как выдернуть из ответа количество?

Цитата:
Сообщение от S.e.n.s.o.RПосмотреть сообщение
А как написать, чтобы ответ показывался в labbel (весь ответ)

а лейбл не лопнет ? =)
________________
[Ссылки могут видеть только зарегистрированные пользователи. ]
[Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Старый 29.03.2011, 23:16   #22
 Разведчик
Аватар для S.e.n.s.o.R
 
S.e.n.s.o.R никому не известный тип
Регистрация: 17.01.2011
Сообщений: 10
Популярность: 10
Сказал(а) спасибо: 10
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Как выдернуть из ответа количество?

Не лопнет, тока скажи, как)
Чё всех смущает то, что я в лейбл хочу засунуть невье**нный текст)
________________
Драконы воруют детей

Последний раз редактировалось S.e.n.s.o.R; 29.03.2011 в 23:21.
  Ответить с цитированием
Старый 29.03.2011, 23:21   #23
 Пехотинец
Аватар для CaptainAmerica
 
CaptainAmerica на правильном пути
Регистрация: 17.12.2010
Сообщений: 50
Популярность: 68
Сказал(а) спасибо: 10
Поблагодарили 29 раз(а) в 26 сообщениях
 
По умолчанию Re: Как выдернуть из ответа количество?

Относительно поиска в строках как предложил Nickitee:
его код отлично работает:

Код:
 string[] stringSeparators = new string[] { "\n" };
            string[] result = inputt.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries);
            foreach (string FindStroke in result)
            {

                if (FindStroke.IndexOf("money") != -1)
                {
                 string[] MassivStroki = FindStroke.Split((Convert.ToChar(">"))); //Разделяем строку символом ">"
                 Console.WriteLine(MassivStroki[1].Replace("</money", ""));
                 label1.Text = MassivStroki[1].Replace("</money", ""); //[0] Будет возращать всё что идёт до первого ">", [1] Вернёт всё что после первого ">", так же удаляем то что осталось на конце.
                }
            }
просто вставляй в свою программу и все.



Это для извлечения необходимых данных из строки ответа:
Код:
string html = new StreamReader(response.GetResponseStream(), Encoding.UTF8).ReadToEnd();  
            string[] mass = inputt.Split('"');
            string result_clan="", result_exp="", result_money=""; 
            for (int i = 0; i < mass.Length; i++) //так как мы разбивали текст по символу " то
            {                                               //и искать то что нам нужно будем в 
                if (mass[i] == "name")               // "промежутках" т.е. name : имя_клана
                    result_clan = mass[i + 2];
                if(mass[i]=="exp")
                    result_exp = mass[i + 2];
                if (mass[i] == "money")
                    result_money = mass[i + 2];
              }
               label1.Text = result_clan;//распихиваем по лейблам
label2.Text = result_exp;
label3.Text = result_money;
Здесь в цикле перебирается массив, полученный разбиением строки ответа по символу "
при проходе по элементам массива смотрим - нашли элемент name, если рассмотреть входящую строку то увидим что при разбиении следующим элементом массива (i+1) будет символ : после него будет название клана, следовательно нам нужен элемент (i+2).Таким образом создавая условия с требуемым обозначением (hp, exp и т.д.) элемент i+2 всегда будет содержать необходимую тебе информацию.Конечно это грубовато, но работает, по крайней мере если элемент name будет соответствовать клану и не будет повторяться в строке (на этот случай можно сохранять значение только 1й раз)
В ручную тут ничего менять не нужно каждый раз.
________________
[Ссылки могут видеть только зарегистрированные пользователи. ]
[Ссылки могут видеть только зарегистрированные пользователи. ]

Последний раз редактировалось CaptainAmerica; 29.03.2011 в 23:30.
  Ответить с цитированием
Старый 29.03.2011, 23:28   #24
 Разведчик
Аватар для S.e.n.s.o.R
 
S.e.n.s.o.R никому не известный тип
Регистрация: 17.01.2011
Сообщений: 10
Популярность: 10
Сказал(а) спасибо: 10
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Как выдернуть из ответа количество?

Не, сорь, но это не то, что мне нужно.
Мне нужно, чтобы ВЕСЬ html ответ отобразился на форме в лейбле и ни на что не делился
Моя попытка написать labbel.Show(html); накрылась, вот пишу о помощи)
Это абсолютно не относится к тюряге и прочих игр, мне желателен простой ответ на простой вопрос
________________
Драконы воруют детей

Последний раз редактировалось S.e.n.s.o.R; 29.03.2011 в 23:34.
  Ответить с цитированием
Старый 29.03.2011, 23:37   #25
 Пехотинец
Аватар для CaptainAmerica
 
CaptainAmerica на правильном пути
Регистрация: 17.12.2010
Сообщений: 50
Популярность: 68
Сказал(а) спасибо: 10
Поблагодарили 29 раз(а) в 26 сообщениях
 
По умолчанию Re: Как выдернуть из ответа количество?

Цитата:
Сообщение от S.e.n.s.o.RПосмотреть сообщение
Не, сорь, но это не то, что мне нужно.
Мне нужно, чтобы ВЕСЬ html ответ отобразился на форме в лейбле
Моя попытка написать labbel.Show(html); накрылась, вот пишу о помощи)
Это абсолютно не относится к тюряге и прочих игр, мне желателен простой ответ на простой вопрос

да это я и не тебе писал.
с чего ты решил что нужно использовать labbel.Show() это ведь метод для отображения самого лейбла. а просто label1.Text=html; не пробовал ?
________________
[Ссылки могут видеть только зарегистрированные пользователи. ]
[Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Старый 29.03.2011, 23:44   #26
 Разведчик
Аватар для S.e.n.s.o.R
 
S.e.n.s.o.R никому не известный тип
Регистрация: 17.01.2011
Сообщений: 10
Популярность: 10
Сказал(а) спасибо: 10
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Как выдернуть из ответа количество?

Извеняюсь

Добавлено через 2 минуты
Цитата:
Сообщение от CaptainAmericaПосмотреть сообщение
да это я и не тебе писал.
с чего ты решил что нужно использовать labbel.Show() это ведь метод для отображения самого лейбла. а просто label1.Text=html; не пробовал ?

А можно лучше так, чтобы этот ответ показывался в веббраузере?
________________
Драконы воруют детей

Последний раз редактировалось S.e.n.s.o.R; 29.03.2011 в 23:46. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 29.03.2011, 23:50   #27
 Пехотинец
Аватар для CaptainAmerica
 
CaptainAmerica на правильном пути
Регистрация: 17.12.2010
Сообщений: 50
Популярность: 68
Сказал(а) спасибо: 10
Поблагодарили 29 раз(а) в 26 сообщениях
 
По умолчанию Re: Как выдернуть из ответа количество?

Цитата:
Сообщение от S.e.n.s.o.RПосмотреть сообщение
А можно лучше так, чтобы этот ответ показывался в веббраузере?

ты имеешь ввиду контрол WebBrowser ?
________________
[Ссылки могут видеть только зарегистрированные пользователи. ]
[Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Старый 29.03.2011, 23:53   #28
 Разведчик
Аватар для S.e.n.s.o.R
 
S.e.n.s.o.R никому не известный тип
Регистрация: 17.01.2011
Сообщений: 10
Популярность: 10
Сказал(а) спасибо: 10
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Как выдернуть из ответа количество?

Да, это возможно?
WebBrowser.DocumentText = html;
так? В таком случае есть проблемы с отображением, а это не гуд
________________
Драконы воруют детей
  Ответить с цитированием
Старый 30.03.2011, 00:04   #29
 Пехотинец
Аватар для CaptainAmerica
 
CaptainAmerica на правильном пути
Регистрация: 17.12.2010
Сообщений: 50
Популярность: 68
Сказал(а) спасибо: 10
Поблагодарили 29 раз(а) в 26 сообщениях
 
По умолчанию Re: Как выдернуть из ответа количество?

Цитата:
Сообщение от S.e.n.s.o.RПосмотреть сообщение
WebBrowser.DocumentText = html;
так? В таком случае есть проблемы с отображением, а это не гуд

Если так, то возможно следует текст отформатировать до удобоваримого вида, как именно сказать не могу так как с этим контролом никогда не работал.
________________
[Ссылки могут видеть только зарегистрированные пользователи. ]
[Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Старый 30.03.2011, 05:37   #30
 Пехотинец
Аватар для XRASER
 
XRASER неизвестен в этих краяхXRASER неизвестен в этих краяхXRASER неизвестен в этих краяхXRASER неизвестен в этих краяхXRASER неизвестен в этих краяхXRASER неизвестен в этих краяхXRASER неизвестен в этих краяхXRASER неизвестен в этих краяхXRASER неизвестен в этих краяхXRASER неизвестен в этих краяхXRASER неизвестен в этих краях
Регистрация: 27.11.2010
Сообщений: 84
Популярность: -1831
Сказал(а) спасибо: 249
Поблагодарили 57 раз(а) в 27 сообщениях
Отправить сообщение для XRASER с помощью ICQ Отправить сообщение для XRASER с помощью Skype™
 
По умолчанию Re: Как выдернуть из ответа количество?

Элемент "inputt" не существует в текущем контексте.
Код:
string[] result = inputt.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries);
________________
[Ссылки могут видеть только зарегистрированные пользователи. ] - сообщество серверов MineCraft.
RPG, Survival, Hi-Tech сервера. 24\7. Без лагов.

Последний раз редактировалось XRASER; 30.03.2011 в 05:42.
  Ответить с цитированием
Ответ


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Руководство] количество опыта metalin Общение и обсуждение CrossFire 6 04.03.2011 21:45
[Информация] Количество камней для точки 3 и 4 уровня. ActionSid Статьи, квесты и описания по Perfect World 1 03.11.2010 09:53
[Информация] количество опыта migan Статьи, квесты и описания по Perfect World 4 03.04.2010 13:41

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

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

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