Помогите с С#

russya

Client
Регистрация
08.07.2014
Сообщения
742
Благодарностей
78
Баллы
28
Код:
HtmlElementCollection ssilka = instance.ActiveTab.FindElementsByAttribute("li","id","result_.*","regexp");
for (int i=0; i< ssilka.Count; i++)
{
    var ssilkalist1 = ssilka.GetByNumber(i).FindChildByAttribute("span","class","a-offscreen","regexp",0).GetAttribute("innertext");
    Regex regg = new Regex("(?<=\$).*(?=\.)");
var ssilkalist = regg.Replace(ssilkalist1, 1);

    //var ssilkalist = ssilkalist1.Replace("$", "");
    //var ssilkalist = ssilkalist1.Replace(".", ",");
    //double ssilkalist = Convert.ToDouble(ssilkalist);
//var ssilkalist = ssilka.GetByNumber(i).FindChildByAttribute("span","class","a-price-whole","regexp",0).GetAttribute("innertext");
    if ((ssilkalist>20)||(ssilkalist<50))
    {
    project.Lists["seller"].Add(ssilkalist1+'|'+ssilkalist+'|'+project.Variables["brand"].Value);
       }
}
return "ok";
В переменной ssilkalist1 будут такие строки:
$115.95
$13.95
$271.06

Мне нужно брать только те, которые больше 20 и меньше 50$. Я уже запутался с этими форматами. Помогите плиз, как мне это сделать
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
попробуй так

C#:
HtmlElementCollection ssilka = instance.ActiveTab.FindElementsByAttribute("li","id","result_.*","regexp");
for (int i= 0; i< ssilka.Count; i++)
{
    var ssilkalist1 = ssilka.GetByNumber(i).FindChildByAttribute("span","class","a-offscreen","regexp",0).GetAttribute("innertext").Replace("$", "");
   
    var split = ssilkalist1.Split('.')[0];
    if (int.Parse(split) > 20 && int.Parse(split) < 50)
    {
        project.Lists["seller"].Add(ssilkalist1 + '|' + split + '|' + project.Variables["brand"].Value);
    }
}
return "ok";
 

russya

Client
Регистрация
08.07.2014
Сообщения
742
Благодарностей
78
Баллы
28
попробуй так

C#:
HtmlElementCollection ssilka = instance.ActiveTab.FindElementsByAttribute("li","id","result_.*","regexp");
for (int i= 0; i< ssilka.Count; i++)
{
    var ssilkalist1 = ssilka.GetByNumber(i).FindChildByAttribute("span","class","a-offscreen","regexp",0).GetAttribute("innertext").Replace("$", "");
  
    var split = ssilkalist1.Split('.')[0];
    if (int.Parse(split) > 20 && int.Parse(split) < 50)
    {
        project.Lists["seller"].Add(ssilkalist1 + '|' + split + '|' + project.Variables["brand"].Value);
    }
}
return "ok";
Выполнение действия CSharp OwnCode Входная строка имела неверный формат.
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
на какую строку ошибку выдаёт ?
я то пишу в слепую можно сказать
 
  • Спасибо
Реакции: russya

russya

Client
Регистрация
08.07.2014
Сообщения
742
Благодарностей
78
Баллы
28
на какую строку ошибку выдаёт ?
я то пишу в слепую можно сказать
Все работает, просто оказывается что попадаются такие поля [Sponsored], и тогда с# бьет ошибку
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
  • Спасибо
Реакции: russya

russya

Client
Регистрация
08.07.2014
Сообщения
742
Благодарностей
78
Баллы
28
  • Спасибо
Реакции: Mikhail B.

russya

Client
Регистрация
08.07.2014
Сообщения
742
Благодарностей
78
Баллы
28
попробуй так

C#:
HtmlElementCollection ssilka = instance.ActiveTab.FindElementsByAttribute("li","id","result_.*","regexp");
for (int i= 0; i< ssilka.Count; i++)
{
    var ssilkalist1 = ssilka.GetByNumber(i).FindChildByAttribute("span","class","a-offscreen","regexp",0).GetAttribute("innertext").Replace("$", "");
  
    var split = ssilkalist1.Split('.')[0];
    if (int.Parse(split) > 20 && int.Parse(split) < 50)
    {
        project.Lists["seller"].Add(ssilkalist1 + '|' + split + '|' + project.Variables["brand"].Value);
    }
}
return "ok";
А подскажи еще немного. У меня попадаются и пустые строки и разные левые слова, возможно как-то в этом коде их пропускать? просто ошибку бьет если не числовой формат
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
А подскажи еще немного. У меня попадаются и пустые строки и разные левые слова, возможно как-то в этом коде их пропускать? просто ошибку бьет если не числовой формат
пробуй

C#:
HtmlElementCollection ssilka = instance.ActiveTab.FindElementsByAttribute("li","id","result_.*","regexp");
for (int i= 0; i< ssilka.Count; i++)
{
    bool result = false;
    var ssilkalist1 = ssilka.GetByNumber(i).FindChildByAttribute("span","class","a-offscreen","regexp",0).GetAttribute("innertext").Replace("$", "");
    var split = ssilkalist1.Split('.')[0];
    if (string.IsNullOrEmpty(split)) continue;
    foreach (char ch in split)
    {
        if (!char.IsDigit(ch))
        {
            result = true;
            break;
        }
    }
  
    if (!result)
    {
        if (int.Parse(split) > 20 && int.Parse(split) < 50)
        {
            project.Lists["seller"].Add(ssilkalist1 + '|' + split + '|' + project.Variables["brand"].Value);
        }
    }
}
return "ok";
 
Последнее редактирование:

russya

Client
Регистрация
08.07.2014
Сообщения
742
Благодарностей
78
Баллы
28
пробуй

C#:
HtmlElementCollection ssilka = instance.ActiveTab.FindElementsByAttribute("li","id","result_.*","regexp");
for (int i= 0; i< ssilka.Count; i++)
{
    bool result = false;
    var ssilkalist1 = ssilka.GetByNumber(i).FindChildByAttribute("span","class","a-offscreen","regexp",0).GetAttribute("innertext").Replace("$", "");
    var split = ssilkalist1.Split('.')[0];
    foreach (char ch in split)
    {
        if (!char.IsDigit(ch))
        {
            result = true;
            break;
        }
    }
  
    if (!result)
    {
       // if (int.Parse(split) > 20 && int.Parse(split) < 50)
     //   {
            project.Lists["seller"].Add(ssilkalist1 + '|' + split + '|' + project.Variables["brand"].Value);
       // }
    }
}
return "ok";
Все равно пишет входная строка имела неверный формат. Когда комментирую if этот все нормально слаживает в список
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
Все равно пишет входная строка имела неверный формат. Когда комментирую if этот все нормально слаживает в список
так так положит все цифры

P.S. Вроде понял в чём ошибка, видимо пустая попадает и он в этот if поэтому идёт, щас подкоректирую
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
код выше подправил
 
  • Спасибо
Реакции: russya

russya

Client
Регистрация
08.07.2014
Сообщения
742
Благодарностей
78
Баллы
28

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)