вычитание и сложение списков и таблиц

konfuciy

Client
Регистрация
07.05.2014
Сообщения
1 402
Благодарностей
131
Баллы
63
Сделайте экшны вычитание и сложение списков и таблиц
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 706
Баллы
113
Что? :bn:
 

Ribas

Client
Регистрация
31.05.2014
Сообщения
1 377
Благодарностей
464
Баллы
83

konfuciy

Client
Регистрация
07.05.2014
Сообщения
1 402
Благодарностей
131
Баллы
63
Посмотрите прогу кейворд кипер, там реализовано. Для примера, два списка
Список 1
Привет
Пока
Добрый вечер
Доброе утро
Список 2
Привет
Доброе утро

Список 1 - список 2 =
Список 3
Пока
Добрый вечер
 

konfuciy

Client
Регистрация
07.05.2014
Сообщения
1 402
Благодарностей
131
Баллы
63

konfuciy

Client
Регистрация
07.05.2014
Сообщения
1 402
Благодарностей
131
Баллы
63

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 706
Баллы
113
Сложение есть - добавить данные из спика
Вычитание это блеклист. Поищите на форуме blacklist
Тоже есть готовое решение
 

konfuciy

Client
Регистрация
07.05.2014
Сообщения
1 402
Благодарностей
131
Баллы
63
Сложение есть - добавить данные из спика
Вычитание это блеклист. Поищите на форуме blacklist
Тоже есть готовое решение
опять костыли предлагаете)) пришивать гриву черепахе не очень вариант)
я прошу сделать простое готовое решение
 

Ribas

Client
Регистрация
31.05.2014
Сообщения
1 377
Благодарностей
464
Баллы
83

konfuciy

Client
Регистрация
07.05.2014
Сообщения
1 402
Благодарностей
131
Баллы
63

konfuciy

Client
Регистрация
07.05.2014
Сообщения
1 402
Благодарностей
131
Баллы
63

konfuciy

Client
Регистрация
07.05.2014
Сообщения
1 402
Благодарностей
131
Баллы
63
очень прошу реализовать эти несложные функции, хотя бы для списков. с вычитанием приходится шаманить и очень медленно работает
хотя бы добавьте список 1 - список 2
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 880
Баллы
113
А что там шаманить?
Просто берёте строку с удалением из второго списка и удаляете строки из первого списка, которые соответствуют данным из второго.
Это зацикливается до того, пока закончатся строки во втором списке.
Если у Вас там не миллионы строк, обработается достаточно быстро и всего в 2 шага.
 

konfuciy

Client
Регистрация
07.05.2014
Сообщения
1 402
Благодарностей
131
Баллы
63
А что там шаманить?
Просто берёте строку с удалением из второго списка и удаляете строки из первого списка, которые соответствуют данным из второго.
Это зацикливается до того, пока закончатся строки во втором списке.
Если у Вас там не миллионы строк, обработается достаточно быстро и всего в 2 шага.
Ну вы сами попробуйте этот чудесный способ. На списках в несколько тысяч ждать надо несколько минут! Пока эта магия отработает. А вы о миллионах - это для ЗП работка на ближайший месяц будет...
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 706
Баллы
113
Потому что проекты нужно не в PM выполнять, а в ZennoPoster
 

konfuciy

Client
Регистрация
07.05.2014
Сообщения
1 402
Благодарностей
131
Баллы
63
Потому что проекты нужно не в PM выполнять, а в ZennoPoster
Это при выполнении с отложенной отрисовкой. Я сомневаюсь, что ЗП быстрее выполняет, по количеству выполненных не видно хорошей скорости. Но попробую засечь именно в ЗП, чтобы показать уж совсем наглядно.
 

konfuciy

Client
Регистрация
07.05.2014
Сообщения
1 402
Благодарностей
131
Баллы
63
Потому что проекты нужно не в PM выполнять, а в ZennoPoster
у меня наконец-то дошли руки до ЗП, набросал проект на вычитание таблицы в 1200 строк из таблицы 8300 строк
Запустил в ЗП

Тип Время Сообщение
11:43:22 Начинаем отсчет
11:53:41 Закончили отсчет

10 МИНУТ!!!
Уважаемый Ростоникс, ЗАЧЕМ вы мне говорили про разницу в ПМ и ЗП, если ее нет и уж точно вы про это не знать не могли!
Потерял столько времени на бесполезное доказывание того, что итак очевидно!
За это время уже можно было бы сделать запрошенную фичу.
 

Ribas

Client
Регистрация
31.05.2014
Сообщения
1 377
Благодарностей
464
Баллы
83
у меня наконец-то дошли руки до ЗП, набросал проект на вычитание таблицы в 1200 строк из таблицы 8300 строк
Запустил в ЗП

Тип Время Сообщение
11:43:22 Начинаем отсчет
11:53:41 Закончили отсчет

10 МИНУТ!!!
Уважаемый Ростоникс, ЗАЧЕМ вы мне говорили про разницу в ПМ и ЗП, если ее нет и уж точно вы про это не знать не могли!
Потерял столько времени на бесполезное доказывание того, что итак очевидно!
За это время уже можно было бы сделать запрошенную фичу.
Можно посмотреть пример шаблона с таблицами, на которых так долго отрабатывает?
 

konfuciy

Client
Регистрация
07.05.2014
Сообщения
1 402
Благодарностей
131
Баллы
63
Можно посмотреть пример шаблона с таблицами, на которых так долго отрабатывает?
Зачем вам, вы на скриптах предлагаете, а я штатными средствами пм делаю . как у вас на скриптах работает мне неинтересно, я не программист и в этом ничего не пойму все равно
 

Ribas

Client
Регистрация
31.05.2014
Сообщения
1 377
Благодарностей
464
Баллы
83
Зачем вам, вы на скриптах предлагаете, а я штатными средствами пм делаю . как у вас на скриптах работает мне неинтересно, я не программист и в этом ничего не пойму все равно
Я как бы тоже не программист, мне интересно как у Вас организована реализация на стандартных экшнах. Или это секрет?
 

konfuciy

Client
Регистрация
07.05.2014
Сообщения
1 402
Благодарностей
131
Баллы
63
Я как бы тоже не программист, мне интересно как у Вас организована реализация на стандартных экшнах. Или это секрет?
В паблик не выложу, только тех поддержке в переписке, принцип описать могу, а делиться не буду, не такая уж это простая разработка
 

Ribas

Client
Регистрация
31.05.2014
Сообщения
1 377
Благодарностей
464
Баллы
83

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
а работаешь с привязанными ?
 

konfuciy

Client
Регистрация
07.05.2014
Сообщения
1 402
Благодарностей
131
Баллы
63
Ну хоть принцип )
1. вместо Списка 1 весь 1й файл положить переменную badaccounts целиком
2. получить количество строк в списке 2
3. взять строку из списка 2 с удалением, положить ее в переменную string
4. Обработка текста/замена/regex - заменить в переменной badaccounts все строки .*{-Variable.string-}.*\r\n на пустоту
5. повторить в цикле в количестве равном количеству строк с списке 2
6. на выходе переменная badaccounts содержит только глючные акки, а с ней уже что хочешь делаешь - хочешь в список, хочешь в файл и т.д.
 

AShaggy

Активный пользователь
Регистрация
25.11.2014
Сообщения
335
Благодарностей
143
Баллы
43
Шел мимо и не смог пройти)
Могу сказать, этот алгоритм очень ресурсозатратный по времени. У вас происходит поиск подстроки в строке, а это примерно квадратичная сходимость.
Получается для такого размера списка (более 9000) длинна строки выходит около 90000 символов (это я взял примерно, что там 10 символов каждый элемент списка, а то и больше) и как итог на один элемент из второго списка приходится примерно 9000000 сравнений! Теперь умножаем на количество элементов второго списка (2500) и офигиваем от количества операций!

Более оптимально - это брать элемент из списка 1, пробегать список 2, и если его нет в списке 2, то сохранить в список 3 (или строку - тут не принципиально). Да количество блоков будет много
 
  • Спасибо
Реакции: vertigo141 и konfuciy

Ribas

Client
Регистрация
31.05.2014
Сообщения
1 377
Благодарностей
464
Баллы
83
Вот у меня 2 кубика с двумя списками, в первом 10к, во втором 5к строк - отработали секунд за 30 примерно. Или я неправильно задачу понял?
 
  • Спасибо
Реакции: konfuciy и AShaggy

konfuciy

Client
Регистрация
07.05.2014
Сообщения
1 402
Благодарностей
131
Баллы
63
Вот у меня 2 кубика с двумя списками, в первом 10к, во втором 5к строк - отработали секунд за 30 примерно. Или я неправильно задачу понял?
Похоже на то, что надо, если отрабатывает за 30 секунд это конечно получше , но тоже не супер . Это значит список 20к будет отрабатывать минуту, список 40к две минуты...
Кейворд кипер для сравнения операции вычитания и с большими списками производит за пару секунд.
 

konfuciy

Client
Регистрация
07.05.2014
Сообщения
1 402
Благодарностей
131
Баллы
63
Шел мимо и не смог пройти)
Могу сказать, этот алгоритм очень ресурсозатратный по времени. У вас происходит поиск подстроки в строке, а это примерно квадратичная сходимость.
Получается для такого размера списка (более 9000) длинна строки выходит около 90000 символов (это я взял примерно, что там 10 символов каждый элемент списка, а то и больше) и как итог на один элемент из второго списка приходится примерно 9000000 сравнений! Теперь умножаем на количество элементов второго списка (2500) и офигиваем от количества операций!

Более оптимально - это брать элемент из списка 1, пробегать список 2, и если его нет в списке 2, то сохранить в список 3 (или строку - тут не принципиально). Да количество блоков будет много
Я попробую этот способ , спасибо
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
Похоже на то, что надо, если отрабатывает за 30 секунд это конечно получше , но тоже не супер . Это значит список 20к будет отрабатывать минуту, список 40к две минуты...
Кейворд кипер для сравнения операции вычитания и с большими списками производит за пару секунд.
он что на кубиках это делает ????
зачем Кейворд кипер если можно и в зенке это сделать http://zennolab.com/discussion/threads/besplatnye-snipety-na-zakaz.23450/page-2#post-161660
 

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