Обработчик события в foreach
Цитата: noname от 02.12.2020, 23:49Здравствуйте!
Есть такой блок кода(скриншот)В массиве есть четыре строки(bs), которые проверяются в foreach и затем парсятся Regexом.
Меня интересует personastate
Когда я вывожу в textBox матчи из регекса, то мне просто выдает 4 цифры, которые записаны в одну строку(это нормально, personastate принимает только единичные цифровые значения).
У personastate есть значения от 0 до 8, и мне нужно сделать так, чтобы после каждого прогона bs через foreach, значение, которые мы получаем(от 0 до 8) прогонялось через if, и если значение bs в personastate "1", то добавить исходный bs(который проверяется из массива по ссылке, то есть одна из четырех строк) в textBox. Ну и соответственно провернуть все эти манипуляции с каждой из строк массива.
Буду очень благодарен за любые подсказки! 🙂
Здравствуйте!
Есть такой блок кода(скриншот)
В массиве есть четыре строки(bs), которые проверяются в foreach и затем парсятся Regexом.
Меня интересует personastate
Когда я вывожу в textBox матчи из регекса, то мне просто выдает 4 цифры, которые записаны в одну строку(это нормально, personastate принимает только единичные цифровые значения).
У personastate есть значения от 0 до 8, и мне нужно сделать так, чтобы после каждого прогона bs через foreach, значение, которые мы получаем(от 0 до 8) прогонялось через if, и если значение bs в personastate "1", то добавить исходный bs(который проверяется из массива по ссылке, то есть одна из четырех строк) в textBox. Ну и соответственно провернуть все эти манипуляции с каждой из строк массива.
Буду очень благодарен за любые подсказки! 🙂
Цитата: Roman Anderson [anomal3] от 04.12.2020, 14:32Ну дык ты всю логику уже расписал что надо сделать, в чём ступор то?
четыре цифры разбить посимвольно?
[MNotice]@anomal3, не забывайте здороваться![/MNotice]
Ну дык ты всю логику уже расписал что надо сделать, в чём ступор то?
четыре цифры разбить посимвольно?
Комментарий модератора:
@anomal3, не забывайте здороваться!
Цитата: noname от 04.12.2020, 14:35Ступор в том, что foreach сразу выводит результат для каждого bs, а мне нужно, чтобы он обработал один bs, через if проверил его результат, если он по условия if подходит - закинул его в другой текстбокс, ну и соответственно так проделал с каждым bs. А в данном коде он просто моментально обрабатывает все bs и выводит их результат, лишая меня возможности проверить его через if
Ступор в том, что foreach сразу выводит результат для каждого bs, а мне нужно, чтобы он обработал один bs, через if проверил его результат, если он по условия if подходит - закинул его в другой текстбокс, ну и соответственно так проделал с каждым bs. А в данном коде он просто моментально обрабатывает все bs и выводит их результат, лишая меня возможности проверить его через if
Цитата: Roman Anderson [anomal3] от 04.12.2020, 16:03Цитата: noname от 04.12.2020, 14:35Ступор в том, что foreach сразу выводит результат для каждого bs, а мне нужно, чтобы он обработал один bs, через if проверил его результат, если он по условия if подходит - закинул его в другой текстбокс, ну и соответственно так проделал с каждым bs. А в данном коде он просто моментально обрабатывает все bs и выводит их результат, лишая меня возможности проверить его через if
Тогда напишите свой блок кода в котором это происходит
.У Вас на скриншоте сначала парсится bs а потом выводится этот bs, а происходит это потому что работает это в цикле foreach
И так же у Вас стоит textbBox1.Text += match. Что добавляет к строке bsstring line = ""; using(WebClient wc = new WebClient()) { line = wc.DownloadString("PATH"); Match match = Regex.Match(line, "УСЛОВИЕ"); textBox1.Text = match.Groups[2]; }Что Вы делаете в foreah? bs объявляете но не используете.
bs парсится с сайта? или из файла?
Цитата: noname от 04.12.2020, 14:35Ступор в том, что foreach сразу выводит результат для каждого bs, а мне нужно, чтобы он обработал один bs, через if проверил его результат, если он по условия if подходит - закинул его в другой текстбокс, ну и соответственно так проделал с каждым bs. А в данном коде он просто моментально обрабатывает все bs и выводит их результат, лишая меня возможности проверить его через if
Тогда напишите свой блок кода в котором это происходит.
У Вас на скриншоте сначала парсится bs а потом выводится этот bs, а происходит это потому что работает это в цикле foreach
И так же у Вас стоит textbBox1.Text += match. Что добавляет к строке bs
string line = "";
using(WebClient wc = new WebClient())
{
line = wc.DownloadString("PATH");
Match match = Regex.Match(line, "УСЛОВИЕ");
textBox1.Text = match.Groups[2];
}
Что Вы делаете в foreah? bs объявляете но не используете.
bs парсится с сайта? или из файла?
Цитата: noname от 04.12.2020, 16:09bs как раз парсится в DownloadString, если присмотрется внимательнее, то в конце к ссылке подставляется значение bs.
bs парсится из сайта. Запрос формируется исходя из содержимого bs, а вывод у запроса парсится регексом.
Допустим у меня 4 значения bs, значит на выходе при парсе я получаю 4 цифры, а мне нужно, чтобы было так:
Если bs(который изначально использовался при парсе) после парса выдал единицу, то вывести изначальный bs в TextBox.
В данной ситуации это не получается потому, что foreach парсит значения и не дает их обработать.
bs как раз парсится в DownloadString, если присмотрется внимательнее, то в конце к ссылке подставляется значение bs.
bs парсится из сайта. Запрос формируется исходя из содержимого bs, а вывод у запроса парсится регексом.
Допустим у меня 4 значения bs, значит на выходе при парсе я получаю 4 цифры, а мне нужно, чтобы было так:
Если bs(который изначально использовался при парсе) после парса выдал единицу, то вывести изначальный bs в TextBox.
В данной ситуации это не получается потому, что foreach парсит значения и не дает их обработать.
Цитата: Roman Anderson [anomal3] от 04.12.2020, 20:51Цитата: noname от 04.12.2020, 16:09bs как раз парсится в DownloadString, если присмотрется внимательнее, то в конце к ссылке подставляется значение bs.
bs парсится из сайта. Запрос формируется исходя из содержимого bs, а вывод у запроса парсится регексом.
Допустим у меня 4 значения bs, значит на выходе при парсе я получаю 4 цифры, а мне нужно, чтобы было так:
Если bs(который изначально использовался при парсе) после парса выдал единицу, то вывести изначальный bs в TextBox.
В данной ситуации это не получается потому, что foreach парсит значения и не дает их обработать.
Покажите что в файле c:\Users\w\Desktop\Ids.txt
Цитата: noname от 04.12.2020, 16:09bs как раз парсится в DownloadString, если присмотрется внимательнее, то в конце к ссылке подставляется значение bs.
bs парсится из сайта. Запрос формируется исходя из содержимого bs, а вывод у запроса парсится регексом.
Допустим у меня 4 значения bs, значит на выходе при парсе я получаю 4 цифры, а мне нужно, чтобы было так:
Если bs(который изначально использовался при парсе) после парса выдал единицу, то вывести изначальный bs в TextBox.
В данной ситуации это не получается потому, что foreach парсит значения и не дает их обработать.
Покажите что в файле c:\Users\w\Desktop\Ids.txt
Цитата: Roman Anderson [anomal3] от 04.12.2020, 21:37string[] bases = File.ReadAllLines(@"Ids.txt"); foreach (var bs in bases) { string line; using (WebClient wc = new WebClient()) { line = wc.DownloadString($"http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=3952B005C92D822E45FBB2FF4223D694&steamids={bs}"); Match match = Regex.Match(line, "\"avatarhash\":\"(.*?)\",\"personastate\":(.^*$?)"); if (match.Groups[2].Value == "1") textBox1.Text = bs; else lPersSate.Text += bs + "\r"; } }
string[] bases = File.ReadAllLines(@"Ids.txt");
foreach (var bs in bases)
{
string line;
using (WebClient wc = new WebClient())
{
line = wc.DownloadString($"http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=3952B005C92D822E45FBB2FF4223D694&steamids={bs}");
Match match = Regex.Match(line, "\"avatarhash\":\"(.*?)\",\"personastate\":(.^*$?)");
if (match.Groups[2].Value == "1") textBox1.Text = bs;
else lPersSate.Text += bs + "\r";
}
}
Цитата: Roman Anderson [anomal3] от 04.12.2020, 21:39Цитата: noname от 04.12.2020, 16:09bs как раз парсится в DownloadString, если присмотрется внимательнее, то в конце к ссылке подставляется значение bs.
bs парсится из сайта. Запрос формируется исходя из содержимого bs, а вывод у запроса парсится регексом.
Допустим у меня 4 значения bs, значит на выходе при парсе я получаю 4 цифры, а мне нужно, чтобы было так:
Если bs(который изначально использовался при парсе) после парса выдал единицу, то вывести изначальный bs в TextBox.
В данной ситуации это не получается потому, что foreach парсит значения и не дает их обработать.
И Код похоже не Вы писали видимо. foreach это управляемый цикл
Цитата: noname от 04.12.2020, 16:09bs как раз парсится в DownloadString, если присмотрется внимательнее, то в конце к ссылке подставляется значение bs.
bs парсится из сайта. Запрос формируется исходя из содержимого bs, а вывод у запроса парсится регексом.
Допустим у меня 4 значения bs, значит на выходе при парсе я получаю 4 цифры, а мне нужно, чтобы было так:
Если bs(который изначально использовался при парсе) после парса выдал единицу, то вывести изначальный bs в TextBox.
В данной ситуации это не получается потому, что foreach парсит значения и не дает их обработать.
И Код похоже не Вы писали видимо. foreach это управляемый цикл
Цитата: Roman Anderson [anomal3] от 04.12.2020, 21:44ps это personastate у этого id
[MNotice]Я не могу править каждый скриншот за тобой.
[/MNotice]
ps это personastate у этого id
Комментарий модератора:
Я не могу править каждый скриншот за тобой.
Цитата: ЯR от 04.12.2020, 22:36Приветствую.
@anomal3, изучите, пожалуйста, видео — как оформлять свои комментарии (вверху страницы). Чтобы модераторам не пришлось править каждый ваш пост.
И ещё, неплохо было бы, прочесть и усвоить Правила форума (всё там же, вверху страницы).
Приветствую.
@anomal3, изучите, пожалуйста, видео — как оформлять свои комментарии (вверху страницы). Чтобы модераторам не пришлось править каждый ваш пост.
И ещё, неплохо было бы, прочесть и усвоить Правила форума (всё там же, вверху страницы).


