Вверх ↑
Этот топик читают: Гость
Ответов: 321
Рейтинг: 10
#1: 2017-09-01 18:26:44 ЛС | профиль | цитата
Привет форум! Ребята, подскажите как лучше всего соединить 2 массива по 25000 значений ?!
25000 это максимум, но не факт, что в 1 и 2 массиве будет по 25к, возможно 17к или любое другое кол-во.
Но кол-во значений в обоих массивах всегда одинаковое.
Примера нет, так как уже не соображаю, только через счетчик по индексу сливать 2 значения в 1.
Просто интересны методы выполнения для таких больших массивов.
Спасибо за внимание.
карма: 1

0
vip
#1.1контекстная реклама от партнеров
Ответов: 824
Рейтинг: 138
#2: 2017-09-01 19:14:57 ЛС | профиль | цитата
Значения в массивах числовые, строчные, ....?
Что нужно делать со значениями при слиянии?
карма: 1

0
Ответов: 321
Рейтинг: 10
#3: 2017-09-01 19:30:08 ЛС | профиль | цитата
Массив ids (int) и status (str).
Слить через соединитель ";" например.
1111111;deleted
2222222;null
3333333;null
4444444;banned
5555555;null

Хотел соединить список id + status и прогнать потом через фильтр по маске, чтобы отфильтровать удаленных и забаненных.
Но легче прогнать массив status через ArrayEnum и на выходе при deleted / banned по индексу вытаскивать id с массива ids.
Так что sashaoli, спасибо большое за отклик! Наверное сливать массивы, потом фильтровать - лишние телодвижения.
карма: 1

0
Ответов: 28
Рейтинг: 0
#4: 2017-09-20 21:32:41 ЛС | профиль | цитата
Боюсь опоздал

Add(MainForm,2953706,70,147)
{
Width=289
Height=238
}
Add(ArrayEnum,7705361,147,196)
{
link(onItem,3345116:doRead,[])
link(Array,2832487:Array,[])
}
Add(ArrayRW,3345116,238,196)
{
link(onRead,10164280:doString,[(289,202)(289,304)(219,304)(219,272)])
link(Array,9414784:Array,[])
link(Index,7705361:Index,[(251,184)(205,184)(205,240)(160,240)])
}
Add(StrList,2832487,133,119)
{
Strings=#10:Это первый|12:А это второй|7:Третий?|20:Четвертый может быть|
}
Add(StrList,9414784,224,119)
{
Strings=#1:1|1:2|3:Три|1:4|
}
Add(FormatStr,10164280,231,266)
{
Mask="%1;%2"
link(onFString,51970:doAdd,[])
link(Str1,7705361:Item,[(237,251)(153,251)])
link(Str2,3345116:Item,[])
}
Add(Button,13657632,91,196)
{
Left=26
Top=86
Caption="Нажми"
link(onClick,7705361:doEnum,[])
}
Add(ListBox,51970,308,266)
{
Left=103
Width=170
Height=199
Align=3
}
Add(InfoTip,12768717,112,91)
{
Info=#11:1-ый Массив|
Width=78
Height=88
}
Add(InfoTip,8101703,196,91)
{
Info=#11:2-ой Массив|
Width=78
Height=88
}

Редактировалось 1 раз(а), последний 2017-09-20 21:33:08
карма: 0

0
Ответов: 8887
Рейтинг: 823
#5: 2017-09-20 22:14:36 ЛС | профиль | цитата
Master4eG,
Не опоздал


Add(MainForm,12665427,371,112)
{
Width=373
Height=381
link(onCreate,8216766:doWork1,[])
}
Add(ArrayEnum,7705361,511,210)
{
link(onItem,3345116:doRead,[])
link(Array,10501310:Array,[])
}
Add(ArrayRW,3345116,595,210)
{
link(onRead,8951214:doCompare,[])
link(Array,4186515:Array,[])
link(Index,7705361:Index,[(608,198)(562,198)(562,254)(524,254)])
}
Add(FormatStr,10164280,588,280)
{
Mask="%1;%2"
link(onFString,51970:doAdd,[])
link(Str1,7705361:Item,[(594,265)(517,265)])
link(Str2,3345116:Item,[])
}
Add(Button,13657632,371,203)
{
Left=156
Top=311
Caption=">>"
link(onClick,11129049:doEvent1,[])
}
Add(ListBox,51970,679,280)
{
Left=183
Top=5
Width=170
Height=298
Point(onKeyDown)
}
Add(InfoTip,12768717,469,105)
{
Info=#11:1-ый Массив|
Width=78
Height=88
}
Add(InfoTip,8101703,553,105)
{
Info=#11:2-ой Массив|
Width=78
Height=88
}
Add(ListBox,10501310,497,126)
{
Left=5
Top=5
Width=85
Height=300
}
Add(ListBox,4186515,581,126)
{
Left=95
Top=5
Width=85
Height=300
}
Add(Button,7264249,371,63)
{
Left=25
Top=310
Caption="New"
link(onClick,10714569:doEvent1,[])
}
Add(Hub,10714569,434,63)
{
OutCount=3
link(onEvent1,4186515:doClear,[(550,69)(550,139)])
link(onEvent2,10501310:doClear,[(485,76)(485,139)])
link(onEvent3,8216766:doWork2,[(459,83)(459,118)(417,118)(417,139)])
}
Add(If_else,8951214,637,210)
{
Op1=String(null)
link(onTrue,10164280:doString,[(676,216)(676,272)(578,272)(578,286)])
}
Add(Hub,11129049,469,203)
{
link(onEvent1,51970:doClear,[(494,209)(494,293)])
link(onEvent2,7705361:doEnum,[])
}
Add(MultiElement,8216766,427,126)
{
link(onEvent1,10501310:doAdd,[])
link(onEvent2,4186515:doAdd,[(473,139)(473,118)(536,118)(536,132)])
}
BEGIN_SDK
Add(EditMulti,11363057,21,21)
{
EventCount=2
WorkCount=2
Width=433
link(doWork1,2334384:doEvent1,[(39,27)(39,55)])
link(doWork2,2474434:doWork3,[(32,34)(32,76)(74,76)])
}
Add(For,1791587,91,56)
{
End=999
link(onEvent,7058897:doRandom,[])
}
Add(Random,7058897,140,56)
{
Min=100001
Max=999999
link(onRandom,1672413:doEvent1,[])
}
Add(Random,11092730,217,70)
{
Max=99
link(onRandom,6318818:doCalc,[])
}
Add(Hub,1672413,182,56)
{
link(onEvent1,11363057:onEvent1,[(207,62)(207,27)])
link(onEvent2,11092730:doRandom,[(207,69)(207,76)])
}
Add(Hub,2334384,49,49)
{
link(onEvent1,7058897:doRandomize,[(130,55)(130,69)])
link(onEvent2,2474434:doWork2,[])
}
Add(HubEx,2474434,70,56)
{
link(onEvent,1791587:doFor,[])
}
Add(MathParse,6318818,259,70)
{
DataCount=1
MathStr="(%1>50)*(%1<76) + (%1>=76)*2"
ResultType=0
link(onResult,6203732:doEvent,[])
}
Add(IndexToChanel,6203732,301,70)
{
Count=3
link(onEvent1,1367140:doClear,[(340,76)(340,48)])
link(onEvent2,6284721:doClear,[])
link(onEvent3,14334009:doClear,[(340,90)(340,125)])
}
Add(Memory,6284721,350,70)
{
Default=String(banned)
link(onData,6014670:doWork2,[])
}
Add(Memory,14334009,350,112)
{
Default=String(deleted)
link(onData,6014670:doWork3,[(417,118)])
}
Add(Memory,1367140,350,35)
{
Default=String(null)
link(onData,6014670:doWork1,[(417,41)])
}
Add(HubEx,6014670,413,70)
{
link(onEvent,11363057:onEvent2,[(434,76)(434,34)])
}
END_SDK

карма: 19

0
Ответов: 16884
Рейтинг: 1239
#6: 2017-09-21 14:01:51 ЛС | профиль | цитата
Вы про что ? Судя по
Master4eG писал(а):
Хотел соединить список id + status и прогнать потом через фильтр по маске, чтобы отфильтровать удаленных и забаненных.
Обычно "удаленные и забаненные" учитываются в таблице БД (что-то типа "USERS") и удаляются простым
DELETE FROM users WHERE status<>"null";
или
DELETE FROM users WHERE Not(status="null");
Где Master4eG взял два массива ids (int) и status (str) для меня загадка.

Редактировалось 5 раз(а), последний 2017-09-21 14:28:19
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 16884
Рейтинг: 1239
#7: 2017-09-21 15:17:47 ЛС | профиль | цитата
Ну и мой вариант (увеличиваем скорость обработки.)

Add(MainForm,12665427,168,161)
{
Width=373
Height=381
link(onCreate,8216766:doWork1,[(236,181)(236,139)])
}
Add(ArrayEnum,7705361,392,273)
{
link(onItem,8951214:doCompare,[])
link(Array,4186515:Array,[])
}
Add(ArrayRW,3345116,525,273)
{
link(onRead,51970:doAdd,[])
link(Array,10501310:Array,[])
link(Index,7705361:Index,[(538,261)(511,261)(511,321)(405,321)])
}
Add(Button,13657632,273,245)
{
Left=156
Top=311
Caption=">>"
link(onClick,11129049:doEvent1,[])
}
Add(ListBox,51970,595,273)
{
Left=183
Top=5
Width=170
Height=298
Point(onKeyDown)
}
Add(InfoTip,12768717,483,154)
{
Info=#9:Массив ID|
Font=[MS Sans Serif,8,1,255,1]
Width=78
Height=88
}
Add(InfoTip,8101703,350,154)
{
Info=#13:Массив STATUS|
Font=[MS Sans Serif,8,1,255,1]
Width=113
Height=88
}
Add(ListBox,10501310,511,175)
{
Left=5
Top=5
Width=85
Height=300
}
Add(ListBox,4186515,378,175)
{
Left=95
Top=5
Width=85
Height=300
}
Add(Button,7264249,168,91)
{
Left=25
Top=310
Caption="New"
link(onClick,10714569:doEvent1,[])
}
Add(Hub,10714569,231,91)
{
OutCount=4
link(onEvent1,3239859:doWork1,[(584,97)])
link(onEvent2,10501310:doClear,[(475,104)(475,188)])
link(onEvent3,4186515:doClear,[(363,111)(363,188)])
link(onEvent4,8216766:doWork2,[(259,118)(259,146)])
}
Add(If_else,8951214,448,273)
{
Op1=String(null)
link(onTrue,3345116:doRead,[])
}
Add(Hub,11129049,350,245)
{
link(onEvent1,3239859:doWork2,[])
link(onEvent2,7705361:doEnum,[(378,258)(378,279)])
}
Add(MultiElement,8216766,273,133)
{
link(onEvent1,10501310:doAdd,[(489,139)(489,181)])
link(onEvent2,4186515:doAdd,[(339,146)(339,181)])
}
BEGIN_SDK
Add(EditMulti,11363057,21,21)
{
EventCount=2
WorkCount=2
Width=307
Height=95
link(doWork1,2334384:doEvent1,[(39,27)(39,55)])
link(doWork2,2474434:doWork3,[(32,34)(32,76)(74,76)])
}
Add(For,1791587,91,56)
{
Start=1
End=20000
link(onEvent,1672413:doEvent1,[])
}
Add(Random,11092730,217,70)
{
Max=2
link(onRandom,3659741:doGetString,[])
}
Add(Hub,1672413,182,56)
{
link(onEvent1,11363057:onEvent1,[(207,62)(207,27)])
link(onEvent2,11092730:doRandom,[(207,69)(207,76)])
}
Add(Hub,2334384,49,49)
{
link(onEvent1,11092730:doRandomize,[(140,55)(140,83)])
link(onEvent2,2474434:doWork2,[])
}
Add(HubEx,2474434,70,56)
{
link(onEvent,1791587:doFor,[])
}
Add(StrList,3659741,266,28)
{
Strings=#4:null|6:banned|7:deleted|
Point(doGetString)
Point(onGetString)
link(onGetString,11363057:onEvent2,[(313,41)(313,34)])
}
END_SDK
Add(HubEx,3239859,580,245)
{
Angle=1
link(onEvent,51970:doClear,[(584,286)])
}


Редактировалось 1 раз(а), последний 2017-09-21 15:19:13
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 8887
Рейтинг: 823
#8: 2017-09-21 15:36:43 ЛС | профиль | цитата
Tad,
Именно так и было у меня, подумалось: проснётся Tad, а всё сделано и поменял местами. Не ошибся!
карма: 19

0
Ответов: 321
Рейтинг: 10
#9: 2017-09-22 15:00:23 ЛС | профиль | цитата
50 json по 1к значений [ids...] [status...] [ids...] [status...] [ids...] [status...] выходят в одном потоке через HTTPClient. И того за один запрос 50000 значений.

Ребята, считайте Вы сделали сервис https://memedia.ru/spec/antidogs.php.
Отправляем в https://vk.com/dev/execute
var c=0;var off=0;var result=[];while (c !=25){var users=API.groups.getMembers({group_id:11111111,count:1000, offset:off,fields:"deactivated"}).items;result.push({ids:users@.id,deactivated:users@.deactivated});c=c+1;off=off+1000;}return result;
И получаем эти самые массивы...


Сервер удобный... Все просто и понятно.




Но за 360 золотых он Вам очистит группу от "собачек".



Так что легче самим сделать ;)

Редактировалось 9 раз(а), последний 2017-09-22 15:09:32
карма: 1

0
9
Сообщение
...
Прикрепленные файлы
(файлы не залиты)