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

  • Автор темы Автор темы konfuciy
  • Дата начала Дата начала

konfuciy

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

Список 1 - список 2 =
Список 3
Пока
Добрый вечер
 
Сложение есть - добавить данные из спика
Вычитание это блеклист. Поищите на форуме blacklist
Тоже есть готовое решение
 
Сложение есть - добавить данные из спика
Вычитание это блеклист. Поищите на форуме blacklist
Тоже есть готовое решение
опять костыли предлагаете)) пришивать гриву черепахе не очень вариант)
я прошу сделать простое готовое решение
 
очень прошу реализовать эти несложные функции, хотя бы для списков. с вычитанием приходится шаманить и очень медленно работает
хотя бы добавьте список 1 - список 2
 
А что там шаманить?
Просто берёте строку с удалением из второго списка и удаляете строки из первого списка, которые соответствуют данным из второго.
Это зацикливается до того, пока закончатся строки во втором списке.
Если у Вас там не миллионы строк, обработается достаточно быстро и всего в 2 шага.
 
А что там шаманить?
Просто берёте строку с удалением из второго списка и удаляете строки из первого списка, которые соответствуют данным из второго.
Это зацикливается до того, пока закончатся строки во втором списке.
Если у Вас там не миллионы строк, обработается достаточно быстро и всего в 2 шага.
Ну вы сами попробуйте этот чудесный способ. На списках в несколько тысяч ждать надо несколько минут! Пока эта магия отработает. А вы о миллионах - это для ЗП работка на ближайший месяц будет...
 
Потому что проекты нужно не в PM выполнять, а в ZennoPoster
 
Потому что проекты нужно не в PM выполнять, а в ZennoPoster
Это при выполнении с отложенной отрисовкой. Я сомневаюсь, что ЗП быстрее выполняет, по количеству выполненных не видно хорошей скорости. Но попробую засечь именно в ЗП, чтобы показать уж совсем наглядно.
 
Потому что проекты нужно не в PM выполнять, а в ZennoPoster
у меня наконец-то дошли руки до ЗП, набросал проект на вычитание таблицы в 1200 строк из таблицы 8300 строк
Запустил в ЗП

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

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

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

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

Можно посмотреть пример шаблона с таблицами, на которых так долго отрабатывает?
 
Можно посмотреть пример шаблона с таблицами, на которых так долго отрабатывает?
Зачем вам, вы на скриптах предлагаете, а я штатными средствами пм делаю . как у вас на скриптах работает мне неинтересно, я не программист и в этом ничего не пойму все равно
 
Зачем вам, вы на скриптах предлагаете, а я штатными средствами пм делаю . как у вас на скриптах работает мне неинтересно, я не программист и в этом ничего не пойму все равно
Я как бы тоже не программист, мне интересно как у Вас организована реализация на стандартных экшнах. Или это секрет?
 
Я как бы тоже не программист, мне интересно как у Вас организована реализация на стандартных экшнах. Или это секрет?
В паблик не выложу, только тех поддержке в переписке, принцип описать могу, а делиться не буду, не такая уж это простая разработка
 
а работаешь с привязанными ?
 
Ну хоть принцип )
1. вместо Списка 1 весь 1й файл положить переменную badaccounts целиком
2. получить количество строк в списке 2
3. взять строку из списка 2 с удалением, положить ее в переменную string
4. Обработка текста/замена/regex - заменить в переменной badaccounts все строки .*{-Variable.string-}.*\r\n на пустоту
5. повторить в цикле в количестве равном количеству строк с списке 2
6. на выходе переменная badaccounts содержит только глючные акки, а с ней уже что хочешь делаешь - хочешь в список, хочешь в файл и т.д.
 
Шел мимо и не смог пройти)
Могу сказать, этот алгоритм очень ресурсозатратный по времени. У вас происходит поиск подстроки в строке, а это примерно квадратичная сходимость.
Получается для такого размера списка (более 9000) длинна строки выходит около 90000 символов (это я взял примерно, что там 10 символов каждый элемент списка, а то и больше) и как итог на один элемент из второго списка приходится примерно 9000000 сравнений! Теперь умножаем на количество элементов второго списка (2500) и офигиваем от количества операций!

Более оптимально - это брать элемент из списка 1, пробегать список 2, и если его нет в списке 2, то сохранить в список 3 (или строку - тут не принципиально). Да количество блоков будет много
 
  • Спасибо
Реакции: vertigo141 и konfuciy
Вот у меня 2 кубика с двумя списками, в первом 10к, во втором 5к строк - отработали секунд за 30 примерно. Или я неправильно задачу понял?
img-2015-12-17-10-01-40.png
 
  • Спасибо
Реакции: konfuciy и AShaggy
Вот у меня 2 кубика с двумя списками, в первом 10к, во втором 5к строк - отработали секунд за 30 примерно. Или я неправильно задачу понял?
img-2015-12-17-10-01-40.png

Похоже на то, что надо, если отрабатывает за 30 секунд это конечно получше , но тоже не супер . Это значит список 20к будет отрабатывать минуту, список 40к две минуты...
Кейворд кипер для сравнения операции вычитания и с большими списками производит за пару секунд.
 
Шел мимо и не смог пройти)
Могу сказать, этот алгоритм очень ресурсозатратный по времени. У вас происходит поиск подстроки в строке, а это примерно квадратичная сходимость.
Получается для такого размера списка (более 9000) длинна строки выходит около 90000 символов (это я взял примерно, что там 10 символов каждый элемент списка, а то и больше) и как итог на один элемент из второго списка приходится примерно 9000000 сравнений! Теперь умножаем на количество элементов второго списка (2500) и офигиваем от количества операций!

Более оптимально - это брать элемент из списка 1, пробегать список 2, и если его нет в списке 2, то сохранить в список 3 (или строку - тут не принципиально). Да количество блоков будет много
Я попробую этот способ , спасибо
 
Похоже на то, что надо, если отрабатывает за 30 секунд это конечно получше , но тоже не супер . Это значит список 20к будет отрабатывать минуту, список 40к две минуты...
Кейворд кипер для сравнения операции вычитания и с большими списками производит за пару секунд.
он что на кубиках это делает ????
зачем Кейворд кипер если можно и в зенке это сделать http://zennolab.com/discussion/threads/besplatnye-snipety-na-zakaz.23450/page-2#post-161660
 

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