Помогите с С#

russya

Client
Joined
Jul 8, 2014
Messages
766
Reaction score
83
Points
28
Code:
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
Joined
Dec 23, 2014
Messages
7,374
Reaction score
2,043
Points
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
Joined
Jul 8, 2014
Messages
766
Reaction score
83
Points
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
Joined
Dec 23, 2014
Messages
7,374
Reaction score
2,043
Points
113
на какую строку ошибку выдаёт ?
я то пишу в слепую можно сказать
 
  • Thank you
Reactions: russya

russya

Client
Joined
Jul 8, 2014
Messages
766
Reaction score
83
Points
28
на какую строку ошибку выдаёт ?
я то пишу в слепую можно сказать
Все работает, просто оказывается что попадаются такие поля [Sponsored], и тогда с# бьет ошибку
 

ssXXXss

Client
Joined
Dec 23, 2014
Messages
7,374
Reaction score
2,043
Points
113
Все работает, просто оказывается что попадаются такие поля [Sponsored], и тогда с# бьет ошибку
ну там уже сам подкоректируй что там у тебя лишнее
 
  • Thank you
Reactions: russya

russya

Client
Joined
Jul 8, 2014
Messages
766
Reaction score
83
Points
28
ну там уже сам подкоректируй что там у тебя лишнее
Спасибо большое добрый человек!!!
 
  • Thank you
Reactions: Mikhail B.

russya

Client
Joined
Jul 8, 2014
Messages
766
Reaction score
83
Points
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
Joined
Dec 23, 2014
Messages
7,374
Reaction score
2,043
Points
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";
 
Last edited:

russya

Client
Joined
Jul 8, 2014
Messages
766
Reaction score
83
Points
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
Joined
Dec 23, 2014
Messages
7,374
Reaction score
2,043
Points
113
Все равно пишет входная строка имела неверный формат. Когда комментирую if этот все нормально слаживает в список
так так положит все цифры

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

ssXXXss

Client
Joined
Dec 23, 2014
Messages
7,374
Reaction score
2,043
Points
113
код выше подправил
 
  • Thank you
Reactions: russya

russya

Client
Joined
Jul 8, 2014
Messages
766
Reaction score
83
Points
28

Users Who Are Viewing This Thread (Total: 1, Members: 0, Guests: 1)