Вверх ↑
Ответов: 817
Рейтинг: 52
#1: 2017-05-25 20:05:56 ЛС | профиль | цитата
Предположим, что необходимо постоянно сравнивать вводимые (поступающие) данные с заранее определенными.
Данных много, более сотни.
Возникает вопрос, как лучше оптимизировать этот процесс что бы было быстро, потребляло мало ресурсов и размер программы был не велик?
Я пока знаю два способа:
1. Выставить подряд кучу Case (пример в схеме)
Add(MainForm,2953706,91,168)
{
}
Add(Case,4256534,294,168)
{
Value=String(Вася)
DataOnTrue=String(Совпало 1)
link(onNextCase,14165110:doCase,[])
link(onTrue,7752635:doWork2,[(339,181)(339,230)])
}
Add(Case,14165110,350,168)
{
Value=String(Петя)
DataOnTrue=String(Совпало 2)
link(onNextCase,9037818:doCase,[])
link(onTrue,7752635:doWork1,[(396,181)])
}
Add(Case,9037818,399,168)
{
Value=String(Данные)
DataOnTrue=String(Совпало 3)
link(onNextCase,11454643:doCase,[])
link(onTrue,5418488:doWork1,[(445,181)])
}
Add(Button,6047939,217,168)
{
Left=55
Top=45
Data=String(Данные)
link(onClick,4256534:doCase,[])
}
Add(Case,11454643,455,168)
{
Value=String(Саша)
DataOnTrue=String(Совпало 4)
link(onTrue,12238575:doWork1,[(515,181)])
}
Add(Message,15623289,560,224)
{
}
Add(HubEx,7752635,392,224)
{
link(onEvent,5418488:doWork2,[])
}
Add(HubEx,5418488,441,224)
{
link(onEvent,12238575:doWork2,[])
}
Add(HubEx,12238575,511,224)
{
link(onEvent,15623289:doMessage,[])
}
2. Каждый раз перебирать массив (пример в схеме)
Add(MainForm,2953706,91,168)
{
}
Add(Button,6047939,196,189)
{
Left=55
Top=45
Data=String(Данные)
link(onClick,5856751:doValue,[])
}
Add(ArrayEnum,14606484,336,189)
{
link(onItem,8127400:doCompare,[])
link(Array,6019312:Array,[(342,163)(356,163)])
}
Add(StrList,6019312,336,91)
{
Strings=#4:Вася|4:Петя|6:Данные|4:Саша|
}
Add(If_else,8127400,392,189)
{
link(onTrue,10090599:doMessage,[])
link(Op2,5856751:Value,[(405,177)(436,177)(436,235)(272,235)])
}
Add(Memory,5856751,266,189)
{
link(onData,14606484:doEnum,[])
}
Add(Message,10090599,469,189)
{
Caption="Совпало"
}
Кто что скажет по этому поводу?
Какой вариант оптимальней?
Может вы предложите свое решение?
карма: 1

0
Редактировалось 3 раз(а), последний 2017-05-25 20:08:47