Вверх ↑
Ответов: 8888
Рейтинг: 823
#1: 2018-05-27 12:46:38 ЛС | профиль | цитата
Silva писал(а):
Увы код работает не корректно
Ну да, проверял на длинных строках, забыл отсечь одинокие циферки
Коллега andrestudioEX исправил, возьмите этот блок у него или этот:
Блок


Add(MultiElementEx,8201177,280,168)
{
}
BEGIN_SDK
Add(EditMultiEx,12596441,21,21)
{
WorkCount=#6:doCalc|
EventCount=#5:onRes|
DataCount=#6:String|
Width=580
Height=389
VOffset=35
HOffset=63
link(doCalc,15322850:doEvent1,[])
}
Add(Str_Enum,5424589,175,77)
{
Delimiter=""
link(onEnum,2986584:doAdd,[])
link(onEndEnum,6783673:doCount,[(221,90)(221,146)])
}
Add(StrList,2986584,238,77)
{
}
Add(Hub,15322850,49,56)
{
OutCount=3
link(onEvent1,9973921:doClear,[(340,62)(340,153)])
link(onEvent2,2986584:doClear,[(228,69)(228,90)])
link(onEvent3,12183542:doValue,[(74,76)(74,83)])
}
Add(ArrayCountRepeats,6783673,252,140)
{
link(onCount,11874207:doStr,[])
link(onEndCount,12871743:doEvent1,[(291,153)(291,188)])
link(Array,2986584:Array,[])
}
Add(MT_String,11874207,301,140)
{
link(onResult,9973921:doAdd,[])
}
Add(StrList,9973921,350,140)
{
Point(doSort)
}
Add(Hub,12871743,301,182)
{
OutCount=5
link(onEvent1,9973921:doSort,[])
link(onEvent2,8631628:doClear,[(515,195)(515,293)])
link(onEvent3,344027:doClear,[(410,202)(410,293)])
link(onEvent5,1952402:doEnum,[])
}
Add(InlineCode,510778,126,77)
{
WorkPoints=#6:doTest|
EventPoints=#5:onRes|
VarPoints=#
DataPoints=#
Code=#15:unit HiAsmUnit;|13:// Author Tad|0:|9:interface|0:|21:uses kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|24: onRes : THI_Event;|51: PROCEDURE doTest(var _Data:TData; Index:Word);|0:|5: end;|0:|14:implementation|0:|29:PROCEDURE THiAsmClass.doTest;|16:var s,ss:string;|18: i,j,k:integer;|5:BEGIN|9: ss:='';|21: s:=toString(_Data);|15: j:=Length(s);|67: for i:=1 to j do if s[i] in ['0'..'9'] then ss:=ss+s[i]; |24: _hi_onEvent(onRes,ss);|4:END;|0:|0:|4:end.|
link(onRes,5424589:doEnum,[])
}
Add(ArrayEnum,1952402,364,210)
{
link(onItem,8448400:doSplit,[])
link(onEndEnum,14183873:doString,[(403,223)(403,363)])
link(Array,9973921:Array,[])
}
Add(MultiStrPart,8448400,427,210)
{
link(onSplit,15737249:doCompare,[(466,216)(466,265)(305,265)(305,286)])
}
Add(MathParse,344027,427,280)
{
MathStr="%0 + %1*%2"
ResultType=0
Point(doClear)
link(onResult,3185586:doFor,[])
link(X1,2121676:Var2,[])
link(X2,1443426:Var2,[])
}
Add(Memory,12183542,84,77)
{
Point(Data)
link(onData,510778:doTest,[])
link(Data,12596441:String,[])
}
Add(For,3185586,476,280)
{
IncludeEnd=1
link(onEvent,8631628:doStrCat,[])
link(End,1443426:Var3,[(489,250)])
}
Add(GetDataEx,1443426,434,245)
{
link(Data,8448400:Part2,[])
}
Add(GetDataEx,2121676,427,252)
{
link(Data,8448400:Part1,[])
}
Add(StrCat,8631628,532,280)
{
Point(doClear)
link(Str1,7680469:Var3,[(538,271)(524,271)])
link(Str2,2121676:Var3,[(545,257)])
}
Add(FormatStr,14183873,490,357)
{
DataCount=3
Mask="%1 %2 %3"
link(onFString,12596441:onRes,[(574,363)(574,62)])
link(Str1,12183542:Value,[(496,348)(90,348)])
link(Str2,7680469:Var2,[(503,327)(524,327)])
link(Str3,344027:Result,[(510,341)(433,341)])
}
Add(GetDataEx,7680469,518,315)
{
Angle=1
link(Data,8631628:Result,[(538,320)])
}
Add(If_else,15737249,315,280)
{
Type=5
Op2=String(0)
link(onTrue,12660160:doCompare,[])
link(Op1,2121676:Var1,[(321,257)])
}
Add(If_else,12660160,364,280)
{
Type=2
Op2=Integer(1)
link(onTrue,344027:doCalc,[])
link(Op1,1443426:Var1,[(370,250)])
}
END_SDK
карма: 19

0