Определить наименьшее число

Porosenok

Client
Регистрация
26.09.2010
Сообщения
1 278
Благодарностей
96
Баллы
48
Допустим на странице есть какое-то количество числ. Я парсю их и мне нужно получить самое меньшее допустим. Как это можно сделать? Как-то через массивы и js?
 

ol1ver

Client
Регистрация
29.08.2013
Сообщения
332
Благодарностей
82
Баллы
28
определелить наименьшее число в массиве js -> в гугле поищите и побалуйтесь в js редакторе.
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 880
Баллы
113
function sortNumber(a,b){ if(a>b) return 1; else return -1;}var n = [0.05,0.101,1.01,0.10, 40.8, 25, 100, 11.4232];n.sort(sortNumber);
это вставляете в свой JS код и получаете сортировку от меньшего к большему. Дальше уже операции с регулярками или заменами. Смотря что нужно сделать.
 

Porosenok

Client
Регистрация
26.09.2010
Сообщения
1 278
Благодарностей
96
Баллы
48
Спасибо, а если количество чисел неизвестно? это можно както учесть, т.е. массив будет разный всегда
 

ol1ver

Client
Регистрация
29.08.2013
Сообщения
332
Благодарностей
82
Баллы
28
а если количество чисел неизвестно
загнать в cписок что спарсили, потом действие со списком (объеденить элементы списка, разделитель ","). Полученное загнать в js код от daniilneet, в скобки [] (массив)
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 880
Баллы
113
Количество чисел не имеет значения. Просто вставьте все свои числа между квадратными скобками и всё.
 

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
890
Баллы
113
А число вы откуда берете? Я не знаю яваскрипта и посему реализую это на c#
беру текст из дивового блока с номерами страниц
"1 2 3 4 5 6 500 Следующая Предудыщая" Удаляю текст
А дальше
Код:
string data = project.Variables["Variable0"].Value; // Это строка с моими значениями  - 1 ** 2 ** 3 ** 4 ** 5 ** 6 ** 7 ** 313 ** 314 ** 315 ** 316 **
var adresslist = project.Lists["адреса_страниц"];
List<string> list = new List<string>();
List<int> list2 = new List<int>();

// вот этот блок можно было бы поизящнее сделать в один список, но мне было лениво поздно и грустно)))))
list = data.Split(' ').ToList();
for(int i=0;i<list.Count;i++)
{
		list2.Add(int.Parse(list[i]));
}

list2.Sort(); //сортируем список
int x = list2[(list2.Count)-1]; // и берем самое нижнее значение, логично что это будет 316
for(int i=0;i<x;i++)
{

adresslist.Add("http://site.com/?page_num="+(i+1)); //пишем в свой список сразу адреса, которые надо оттоптать, т.к. в с# эта процедура выполняется побыстрее чем в Зенке		
}
return 0;  // ну и из вежливости (и чтобы пошло по true) возвращаем никому не нужный нолик
 

ol1ver

Client
Регистрация
29.08.2013
Сообщения
332
Благодарностей
82
Баллы
28
А число вы откуда берете? Я не знаю яваскрипта и посему реализую это на c#
беру текст из дивового блока с номерами страниц
"1 2 3 4 5 6 500 Следующая Предудыщая" Удаляю текст
а не проще просто на вхождение Следующая искать? и если есть то дергать ?page

вопрос знатокам. А что легче подгружать? С# код или JS?
 

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
890
Баллы
113
а не проще просто на вхождение Следующая искать? и если есть то дергать ?page

вопрос знатокам. А что легче подгружать? С# код или JS?
Может и проще) но это каждый раз под новый сайт подтачивать, смотреть что там где...
а так взял текст из дива - удалил ненужное и готово.
По хорошему и сортировка не нужна - сиди да бери последний элемент массива, но по скольку значений не подразумевается много - можно пожертвовать капельку процессорного времени в угоду универсальности)))).

Можно конечно при обходе всех страниц брать и кликать на "Следующая", но имхо лучше сразу делать задание. Может я потом его сохраню в фаил и в несколько потоков отрабатывать буду)))) я же хочу чтобы список отработался в 100500 раз быстрее))) а не чтобы он отработался просто 100500 раз)

В общем на вкус и цвет все фломастеры разные - тут уж сами допиливайте как вам сподручнее)
 

7make

Client
Регистрация
25.06.2011
Сообщения
1 547
Благодарностей
1 310
Баллы
113

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с 7make какие-либо сделки.

вы че извратом грузите зенно?!
руками проинициализируй глобалный счетчик и все.
зачем статику/пагинацию парсить?
делай page=count++
 
  • Спасибо
Реакции: Lexicon

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
890
Баллы
113
гм... ну и так тоже можно конечно))) но что то я не доверяю глобальным переменным в зенно) Как то мне спокойнее когда у меня есть где то сформированное задание, которое можно как то оценить/сохранить/отфильтровать, чем носиться с одной переменной туда сюда и в каждом проекте при старте не забывать скинуть на 0. (кстати не факт что 1 проект будет делаться за 1 раз))))))

Но в любом случае изначально речь шла о получении максимального числа из ряда чисел))) страницы это частная задача)
 

7make

Client
Регистрация
25.06.2011
Сообщения
1 547
Благодарностей
1 310
Баллы
113

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с 7make какие-либо сделки.

но что то я не доверяю глобальным переменным в зенно
а как ты хранишь что напарсилось тогда? конкретно пагинацию. в локальных переменных чтоле?
и как ты собираешься сортировать ряды с коллизиями? Точнее что извлекать из них?
понимаешь какой это бред такое городить?
ты изобретаешь счетчик вместо одного екшена "Увеличить переменную на +1", изобретаешь этот же счетчик в числовых рядах/пагинации.
 
  • Спасибо
Реакции: ol1ver

ol1ver

Client
Регистрация
29.08.2013
Сообщения
332
Благодарностей
82
Баллы
28

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
890
Баллы
113
а как ты хранишь что напарсилось тогда? конкретно пагинацию. в локальных переменных чтоле?
и как ты собираешься сортировать ряды с коллизиями? Точнее что извлекать из них?
понимаешь какой это бред такое городить?
ты изобретаешь счетчик вместо одного екшена "Увеличить переменную на +1", изобретаешь этот же счетчик в числовых рядах/пагинации.
В переменных, которые потом сохраняю в фаил
Обычно мне не критично появление дублей, даже если они и возникают - то их число довольно смехотворное.
Я не несу бред. У меня, например, довольно часто не находится элемент страницы, из за каких то косяков, или вообще не грузится страница и мне намного проще в результате ошибок взять фаил, в котором остались все недопарсенные страницы и скормить его по новой, чем сидеть и гадать где там кто и как закончил. Не всегда я заканчиваю проект за 1 раз. Собственно вам то какое дело как я предпочитаю формировать свои проекты и с ними работать? Ваш способ я запомнил, и в случае необходимости обязательно перейму чужой полезный опыт, но топик не об этом.
Я, пожалуй, напомню что я использую данный способ в частном решении задачи по формированию списка страниц для обхода (удобнее мне так)
А изначально общий вопрос стоял как Допустим на странице есть какое-то количество числ. Я парсю их и мне нужно получить самое меньшее допустим. Как это можно сделать? Как-то через массивы и js? Так наверное заметнее будет. Поделитесь, пожалуйста, как решить эту задачу при помощи глобальной переменной.
 

Atom

Client
Регистрация
03.08.2012
Сообщения
77
Благодарностей
7
Баллы
8
Подскажите, есть список цен с плавающей точкой.
Из этого списка нужно найти минимальное и максимальное значение.

Как быть?
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 368
Благодарностей
8 649
Баллы
113

Atom

Client
Регистрация
03.08.2012
Сообщения
77
Благодарностей
7
Баллы
8

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 368
Благодарностей
8 649
Баллы
113
Делал так же но результат:
Попробуйте применять Trim к строкам перед тем как добавлять в список.
Trim удалит пробельные символы. Если они есть, то значение будет строкой и Сортировка как к числу не будет применена.
 

Atom

Client
Регистрация
03.08.2012
Сообщения
77
Благодарностей
7
Баллы
8
Попробуйте применять Trim к строкам перед тем как добавлять в список.
Trim удалит пробельные символы. Если они есть, то значение будет строкой и Сортировка как к числу не будет применена.
Увы ничего не изменилось. У меня значение 100.72 меньше чем 98.62 выдает
 

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63
Если заменить точку на запятую у всех чисел
Возможно с Culture нужно будет поиграть
Код:
return project.Lists["lst"].Select(double.Parse).Max<double>();//Максимальное
return project.Lists["lst"].Select(double.Parse).First<double>();//Минимальное
 

obyavkaby

Client
Регистрация
26.05.2017
Сообщения
187
Благодарностей
17
Баллы
18
Так же требуется отсортировать числа в списке и получается 104 меньше 74

интересно почему у sergodjan66 получилось

Atom у вас получилось сделать как нужно ?

Screenshot_6.jpg
 

obyavkaby

Client
Регистрация
26.05.2017
Сообщения
187
Благодарностей
17
Баллы
18
удалил строки содержащие текст и получилось

Screenshot_1.jpg
 

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