Вверх ↑
Этот топик читают: Гость
Ответов: 490
Рейтинг: 162
#16: 2018-05-27 01:27:10 ЛС | профиль | цитата
Silva
Возможный вариант?


Add(MainForm,12397248,140,182)
{
Width=709
Height=242
}
Add(Edit,13314783,308,105)
{
Left=30
Top=25
Width=295
Text="41021811320118 32151112065 26052018 1600"
}
Add(Edit,13965869,378,175)
{
Left=30
Top=75
Width=505
Text="0"
}
Add(Button,15874368,224,175)
{
Left=340
Top=25
link(onClick,8201177:doCalc,[])
}
Add(MultiElementEx,8201177,308,175)
{
link(onRes,13965869:doText,[])
link(String,13314783:Text,[])
}
BEGIN_SDK
Add(EditMultiEx,12596441,21,21)
{
WorkCount=#6:doCalc|
EventCount=#5:onRes|
DataCount=#6:String|
Width=734
Height=417
VOffset=70
HOffset=70
link(doCalc,5462783:doEvent1,[(35,97)(35,83)])
}
Add(Str_Enum,389233,140,140)
{
Delimiter=""
link(onEnum,9024364:doConvert,[])
link(onEndEnum,14252911:doSort,[(184,153)(184,188)])
link(String,4506909:Var2,[])
}
Add(Convertor,9024364,189,140)
{
Mode=1
link(onResult,13089371:doCase,[])
}
Add(ArrayRW,2322341,273,126)
{
link(Array,11069843:Var2,[])
}
Add(IntegerArray,4591465,273,63)
{
IntArray=[]
}
Add(ArraySort,14252911,308,182)
{
ArrayType=1
link(onEndSort,815268:doCount,[])
link(Array,11069843:Var3,[(314,110)])
}
Add(GetDataEx,11069843,273,105)
{
link(Data,4591465:Array,[])
}
Add(Case,13089371,231,140)
{
Value=Integer(0)
link(onNextCase,2322341:doAdd,[])
}
Add(ArrayCountRepeats,815268,357,182)
{
ArrayType=1
link(onCount,9747463:doValue,[])
link(Array,14252911:ArraySort,[(363,170)(350,170)(350,228)(314,228)])
}
Add(MT_MultiMem,9747463,406,182)
{
link(onData,12300473:doCompare,[(474,188)(474,223)(401,223)(401,258)])
}
Add(If_else,12300473,413,252)
{
Op2=Integer(1)
link(onFalse,13579507:doEvent1,[])
link(Op1,9630900:Var2,[])
}
Add(Math,14873352,525,259)
{
OpType=2
link(onResult,11017156:doOperation,[])
link(Op1,16059183:Var2,[])
link(Op2,13830514:Var3,[(538,236)])
}
Add(GetDataEx,9630900,413,231)
{
link(Data,9747463:Value2,[])
}
Add(Math,11017156,637,259)
{
Point(doDefault)
link(Op1,753617:Var1,[(643,247)(625,247)(625,303)])
}
Add(For,12601497,490,308)
{
IncludeEnd=1
link(onEvent,2705495:doStrCat,[])
link(End,13830514:Var2,[])
}
Add(StrCat,2705495,574,308)
{
Point(doClear)
link(Str1,11299000:Var1,[(580,296)(555,296)(555,356)])
link(Str2,16059183:Var3,[(587,229)])
}
Add(Hub,13579507,455,259)
{
link(onEvent1,14873352:doOperation,[])
link(onEvent2,12601497:doFor,[(469,314)])
}
Add(GetDataEx,13830514,497,231)
{
Angle=3
link(Data,9630900:Var3,[])
}
Add(GetDataEx,16059183,525,224)
{
Angle=3
link(Data,9747463:Value1,[(412,229)])
}
Add(FormatStr,1600567,651,378)
{
DataCount=3
Mask="%1 %2 %3"
link(onFString,12596441:onRes,[(719,384)(719,97)])
link(Str1,4506909:Var3,[(657,117)])
link(Str2,11299000:Var3,[(664,356)])
link(Str3,753617:Var3,[(671,303)])
}
Add(Hub,5462783,49,77)
{
OutCount=5
link(onEvent1,4591465:doClear,[])
link(onEvent2,6405299:In,[])
link(onEvent3,9905071:In,[(95,97)(95,111)])
link(onEvent4,389233:doEnum,[(89,104)(89,146)])
link(onEvent5,1600567:doString,[(80,111)(80,384)])
}
Add(GetDataEx,4506909,140,112)
{
link(Data,12596441:String,[(146,66)(97,66)])
}
Add(GetDataEx,11299000,574,351)
{
link(Data,2705495:Result,[])
}
Add(GetDataEx,753617,637,298)
{
link(Data,11017156:Result,[])
}
Add(LineBreak,7236626,490,350)
{
link(Out,2705495:doClear,[(547,356)(547,321)])
Primary=[6405299,-385,-266]
}
Add(LineBreak,10370963,588,266)
{
link(Out,11017156:doDefault,[])
Primary=[9905071,-483,-161]
}
END_SDK

карма: 4

0
Ответов: 43
Рейтинг: -2
#17: 2018-05-27 09:26:05 ЛС | профиль | цитата
Silva писал(а):
Сложная задачка?

Tad писал(а):
Элементарно.

Silva, а Tad не врёт
На паскале задачка пустяковая. Для примера с схемой от tig-rrr, (т.к Леонид отжёг по полной )

Add(MainForm,12397248,77,49)
{
Width=709
Height=242
}
Add(Edit,13314783,147,49)
{
Left=30
Top=25
Width=295
Text="41021811320118 32151112065 26052018 1600"
}
Add(Edit,13965869,266,126)
{
Left=30
Top=75
Width=585
Text="0"
}
Add(Button,15874368,77,126)
{
Left=340
Top=25
link(onClick,8201177:doCalc,[])
}
Add(MultiElementEx,8201177,147,126)
{
link(onRes,12883073:doWork2,[])
link(String,11113532:Var2,[])
}
BEGIN_SDK
Add(EditMultiEx,12596441,21,21)
{
WorkCount=#6:doCalc|
EventCount=#5:onRes|
DataCount=#6:String|
Width=734
Height=417
VOffset=70
HOffset=70
link(doCalc,5462783:doEvent1,[(35,97)(35,83)])
}
Add(Str_Enum,389233,140,140)
{
Delimiter=""
link(onEnum,9024364:doConvert,[])
link(onEndEnum,14252911:doSort,[(184,153)(184,188)])
link(String,4506909:Var2,[])
}
Add(Convertor,9024364,189,140)
{
Mode=1
link(onResult,13089371:doCase,[])
}
Add(ArrayRW,2322341,273,126)
{
link(Array,11069843:Var2,[])
}
Add(IntegerArray,4591465,273,63)
{
IntArray=[]
}
Add(ArraySort,14252911,308,182)
{
ArrayType=1
link(onEndSort,815268:doCount,[])
link(Array,11069843:Var3,[(314,110)])
}
Add(GetDataEx,11069843,273,105)
{
link(Data,4591465:Array,[])
}
Add(Case,13089371,231,140)
{
Value=Integer(0)
link(onNextCase,2322341:doAdd,[])
}
Add(ArrayCountRepeats,815268,357,182)
{
ArrayType=1
link(onCount,9747463:doValue,[])
link(Array,14252911:ArraySort,[(363,170)(350,170)(350,228)(314,228)])
}
Add(MT_MultiMem,9747463,406,182)
{
link(onData,12300473:doCompare,[(474,188)(474,223)(401,223)(401,258)])
}
Add(If_else,12300473,413,252)
{
Op2=Integer(1)
link(onFalse,13579507:doEvent1,[])
link(Op1,9630900:Var2,[])
}
Add(Math,14873352,525,259)
{
OpType=2
link(onResult,11017156:doOperation,[])
link(Op1,16059183:Var2,[])
link(Op2,13830514:Var3,[(538,236)])
}
Add(GetDataEx,9630900,413,231)
{
link(Data,9747463:Value2,[])
}
Add(Math,11017156,637,259)
{
Point(doDefault)
link(Op1,753617:Var1,[(643,247)(625,247)(625,303)])
}
Add(For,12601497,490,308)
{
IncludeEnd=1
link(onEvent,2705495:doStrCat,[])
link(End,13830514:Var2,[])
}
Add(StrCat,2705495,574,308)
{
Point(doClear)
link(Str1,11299000:Var1,[(580,296)(555,296)(555,356)])
link(Str2,16059183:Var3,[(587,229)])
}
Add(Hub,13579507,455,259)
{
link(onEvent1,14873352:doOperation,[])
link(onEvent2,12601497:doFor,[(469,314)])
}
Add(GetDataEx,13830514,497,231)
{
Angle=3
link(Data,9630900:Var3,[])
}
Add(GetDataEx,16059183,525,224)
{
Angle=3
link(Data,9747463:Value1,[(412,229)])
}
Add(FormatStr,1600567,651,378)
{
DataCount=3
Mask="%1 %2 %3"
link(onFString,12596441:onRes,[(719,384)(719,97)])
link(Str1,4506909:Var3,[(657,117)])
link(Str2,11299000:Var3,[(664,356)])
link(Str3,753617:Var3,[(671,303)])
}
Add(Hub,5462783,49,77)
{
OutCount=5
link(onEvent1,4591465:doClear,[])
link(onEvent2,6405299:In,[])
link(onEvent3,9905071:In,[(95,97)(95,111)])
link(onEvent4,389233:doEnum,[(89,104)(89,146)])
link(onEvent5,1600567:doString,[(80,111)(80,384)])
}
Add(GetDataEx,4506909,140,112)
{
link(Data,12596441:String,[(146,66)(97,66)])
}
Add(GetDataEx,11299000,574,351)
{
link(Data,2705495:Result,[])
}
Add(GetDataEx,753617,637,298)
{
link(Data,11017156:Result,[])
}
Add(LineBreak,3362365,490,350)
{
link(Out,2705495:doClear,[(547,356)(547,321)])
Primary=[6405299,-385,-266]
}
Add(LineBreak,1541727,588,266)
{
link(Out,11017156:doDefault,[])
Primary=[9905071,-483,-161]
}
END_SDK
Add(InlineCode,396202,196,189)
{
WorkPoints=#6:doWork|
EventPoints=#5:onRes|
DataPoints=#5:inStr|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|21:uses kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|4: |9: public|28: inStr,onRes: THI_Event;|48: procedure doWork(var dt: TData; idx: word);|0:|5: end;|0:|14:implementation|0:|55:procedure THiAsmClass.doWork(var dt: TData; idx: word);|35:var arrStr: array [1..9] of string;|52: sIn,sOut: string; chr: Char; i,iRes: integer; |5:begin|41: sIn := ToStringEvent(inStr); iRes := 0;|30: for i := 1 to Length(sIn) do|7: begin|18: chr := sIn[i];|15: case chr of|38: '1': arrStr[1] := arrStr[1] + chr;|38: '2': arrStr[2] := arrStr[2] + chr;|38: '3': arrStr[3] := arrStr[3] + chr;|38: '4': arrStr[4] := arrStr[4] + chr;|38: '5': arrStr[5] := arrStr[5] + chr;|38: '6': arrStr[6] := arrStr[6] + chr;|38: '7': arrStr[7] := arrStr[7] + chr;|86: '8': arrStr[8] := arrStr[8] + chr; |42: '9': arrStr[9] := arrStr[9] + chr; |8: end;|6: end;|10: |24: sOut := sIn + ' '; |2: |20: for i := 1 to 9 do|33: if Length(arrStr[i]) > 1 then|11: begin|33: sOut := sOut + arrStr[i];|45: iRes := iRes + (Length(arrStr[i])*i);|10: end;|53: _hi_OnEvent(onRes,sOut + ' ' + Int2Str(iRes)); |4:end;|0:|4:end.|
link(onRes,12883073:doWork3,[(242,195)])
link(inStr,11113532:Var3,[(202,103)])
}
Add(Button,1209941,77,189)
{
Left=30
Top=125
link(onClick,396202:doWork,[])
}
Add(GetDataEx,11113532,147,98)
{
link(Data,13314783:Text,[])
}
Add(HubEx,12883073,238,126)
{
link(onEvent,13965869:doText,[])
}

карма: -2

0
Ответов: 39
Рейтинг: -1
#18: 2018-05-27 11:21:47 ЛС | профиль | цитата
Леонид
Леонид писал(а):
Silva,
Блок для повторяшек


Увы код работает не корректно(
Ввожу
1231142452 выдает
1231142452 1112223445 25
а должно так
1231142452
1231142452 11122244 17

--- Добавлено в 2018-05-27 11:30:45

tig-rrr
tig-rrr писал(а):
Возможный вариант?

Ты гений, идеально! Респектищеее)

Редактировалось 1 раз(а), последний 2018-05-27 11:30:45
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#19: 2018-05-27 11:39:08 ЛС | профиль | цитата
Всего на 21 компоненте (без подсказок)

Add(MainForm,2953706,224,203)
{
Width=727
Height=356
}
Add(Button,8291899,224,140)
{
Left=20
Top=265
link(onClick,13595547:doEnum,[])
}
Add(Str_Enum,2965254,434,168)
{
Delimiter=""
link(onEnum,14644966:doAdd,[])
link(onEndEnum,9874830:doEvent1,[(478,181)(478,209)])
}
Add(Memo,6718432,700,420)
{
Left=10
Top=30
Width=695
Height=215
Font=[Consolas,9,0,0,204]
}
Add(FormatStr,1038890,644,420)
{
DataCount=3
Mask="%1 %2 = %3"
link(onFString,6718432:doAdd,[])
link(Str1,13595547:Item,[(650,405)(279,405)])
link(Str2,1157603:Var2,[])
link(Str3,881695:Sum,[(664,408)(659,408)(659,464)(573,464)])
}
Add(ArrayEnum,13595547,273,140)
{
link(onItem,13686677:doEvent1,[])
link(Array,12237184:Array,[])
}
Add(Replace,7244097,350,168)
{
@Hint=#9:Удаляем 0|
SubStr="0"
link(onReplace,115627:doReplace,[])
AddHint(-7,-69,70,13,@Hint)
}
Add(Replace,115627,392,168)
{
@Hint=#15:Удаляем ПРОБЕЛЫ|
SubStr=" "
link(onReplace,2965254:doEnum,[])
AddHint(-12,-46,119,13,@Hint)
}
Add(StrList,14644966,553,168)
{
Point(doSort)
Point(doGetIndex)
Point(onGetIndex)
link(onGetIndex,14644966:doDelete,[(600,181)(600,160)(541,160)(541,188)])
}
Add(Hub,9874830,483,203)
{
@Hint=#30:1 - Удаление НЕ поаторяющихся.|15:2 - Сортировка.|22:3 - Вывод результата. |
OutCount=3
link(onEvent1,14624525:doCount,[(532,209)(532,272)])
link(onEvent2,14644966:doSort,[])
link(onEvent3,14491832:doEnum,[(507,223)(507,363)])
AddHint(-59,13,21,13,OutCount)
AddHint(-185,36,185,39,@Hint)
}
Add(ArraySum,881695,567,420)
{
ArrayType=1
Delimiter=""
link(onSum,1038890:doString,[])
link(Array,88802:Var2,[])
}
Add(ArrayEnum,14491832,518,357)
{
link(onItem,5149530:doStrCat,[])
link(onEndEnum,881695:doSum,[(558,370)(558,426)])
link(Array,88802:Var1,[(524,306)])
}
Add(GetDataEx,88802,567,301)
{
link(Data,14644966:Array,[])
}
Add(StrCat,5149530,665,357)
{
Point(doClear)
link(Str1,1157603:Var3,[(671,344)(657,344)])
}
Add(GetDataEx,1157603,651,392)
{
Angle=1
link(Data,5149530:Result,[(671,397)])
}
Add(Hub,13686677,315,140)
{
OutCount=3
link(onEvent1,5149530:doClear,[(642,146)(642,370)])
link(onEvent2,14644966:doClear,[(516,153)(516,181)])
link(onEvent3,7244097:doReplace,[(343,160)(343,174)])
}
Add(ArrayCountRepeats,14624525,665,266)
{
ArrayType=1
link(onCount,15306022:doValue,[])
link(Array,88802:Var3,[(671,254)(581,254)(581,306)])
}
Add(If_else,2527290,763,266)
{
Op1=Integer(1)
link(onTrue,11035016:doData,[])
link(Op2,15306022:Value2,[(776,254)(753,254)(753,307)(727,307)])
}
Add(DoData,11035016,812,266)
{
link(onEventData,14644966:doGetIndex,[(860,272)(860,242)(542,242)(542,223)])
link(Data,15306022:Value1,[(818,253)(800,253)(800,312)(720,312)])
}
Add(StrList,12237184,259,77)
{
Strings=#40:41021811320118 32151112065 26052018 1600|40:41021811320118 22615101219 26052018 1600|41:361961310 1515 141618131621 26052018 1630|13:26052018 1630|0:|38:161912118261141519 11012 26052018 1600|31:32201910122061519 26052018 1600|0:|25:20311261819 26052018 1600|34:31154613302316133014 26052018 1600|13:26052018 1630|0:|
}
Add(MT_MultiMem,15306022,714,266)
{
link(onData,2527290:doCompare,[])
}
Add(InfoTip,13122963,469,336)
{
Info=#16:ВЫВОД РЕЗУЛЬТАТА|
Font=[MS Sans Serif,8,1,255,1]
VAlign=2
Width=274
Height=158
Margin=3
}
Add(InfoTip,2344210,658,210)
{
Info=#18:УДАЛЯЕМ НЕ ПОВТОРЫ|
Font=[MS Sans Serif,8,5,255,1]
Width=225
Height=116
Margin=3
}


Редактировалось 1 раз(а), последний 2018-05-27 11:50:36
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 39
Рейтинг: -1
#20: 2018-05-27 12:27:33 ЛС | профиль | цитата
Tad
Tad писал(а):
Всего на 21 компоненте (без подсказок)

Огонь!!!) Круть.

Редактировалось 1 раз(а), последний 2018-05-27 12:28:01
карма: 0

0
Ответов: 8888
Рейтинг: 823
#21: 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
Ответов: 16884
Рейтинг: 1239
#22: 2018-05-27 13:19:26 ЛС | профиль | цитата
А если бы мне было нужно, то так :


Add(MainForm,12397248,105,217)
{
Width=709
Height=366
}
Add(InlineCode,396202,217,266)
{
WorkPoints=#6:doWork|
EventPoints=#5:onRes|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|21:uses kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|4: |9: public|22: onRes: THI_Event;|48: procedure doWork(var dt: TData; idx: word);|0:|5: end;|0:|14:implementation|0:|55:procedure THiAsmClass.doWork(var dt: TData; idx: word);|35:var arrStr: array [1..9] of string;|22: sIn,sOut: string; |23: i,iRes: integer; |5:begin|44: sIn := ToString(dt); iRes := 0; sOut:=''; |57: IF sin='' then begin _hi_OnEvent(onRes,''); exit end;|36: for i:= 1 to 9 do arrStr[i] := '';|120: for i := 1 to Length(sIn) do IF sin[i] in ['1'..'9'] then arrStr[Str2Int(sin[i])] := arrStr[Str2Int(sin[i])] + sin[i];|20: for i := 1 to 9 do|33: if Length(arrStr[i]) > 1 then|11: begin|33: sOut := sOut + arrStr[i];|45: iRes := iRes + (Length(arrStr[i])*i);|10: end;|68: _hi_OnEvent(onRes,sin + ' '+ sOut + ' =' + Int2Str(iRes)); |4:end;|0:|4:end.|
link(onRes,6718432:doAdd,[])
}
Add(Button,8291899,98,259)
{
Left=20
Top=265
link(onClick,14614018:doEvent1,[])
}
Add(ArrayEnum,13595547,168,266)
{
link(onItem,396202:doWork,[])
link(Array,11809262:Array,[])
}
Add(Memo,6718432,273,266)
{
Left=10
Top=30
Width=695
Height=215
Font=[Consolas,9,0,0,204]
}
Add(Hub,14614018,140,259)
{
link(onEvent1,6718432:doClear,[(260,265)(260,279)])
link(onEvent2,13595547:doEnum,[])
}
Add(StrList,11809262,154,203)
{
Strings=#40:41021811320118 32151112065 26052018 1600|40:41021811320118 22615101219 26052018 1600|0:|41:361961310 1515 141618131621 26052018 1630|22:bucovice 26052018 1630|0:|38:161912118261141519 11012 26052018 1600|31:32201910122061519 26052018 1600|0:|25:20311261819 26052018 1600|34:31154613302316133014 26052018 1600|0:|
}

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 39
Рейтинг: -1
#23: 2018-05-27 14:36:41 ЛС | профиль | цитата
Просто супер и разная реализация.
Всем спасибо, профи!)
карма: 0

0
Ответов: 8888
Рейтинг: 823
#24: 2018-05-27 15:30:44 ЛС | профиль | цитата
Tad, итого и все чуть разные:
5 схем


Add(MainForm,12397248,322,63)
{
Width=636
Height=200
}
Add(Edit,13314783,364,63)
{
Left=30
Top=10
Width=295
Text="41021811320118 32151112065 26052018 1600"
}
Add(Edit,13965869,427,112)
{
Left=75
Top=35
Width=540
Text="0"
}
Add(Button,15874368,322,161)
{
Top=60
Width=70
Caption="Блок_Андр"
link(onClick,8201177:doCalc,[])
}
Add(MultiElementEx,8201177,378,161)
{
link(onRes,7006104:doText,[])
link(String,7469338:Var3,[(384,152)])
}
BEGIN_SDK
Add(EditMultiEx,12596441,21,21)
{
WorkCount=#6:doCalc|
EventCount=#5:onRes|
DataCount=#6:String|
Width=734
Height=417
VOffset=70
HOffset=70
link(doCalc,5462783:doEvent1,[(35,97)(35,83)])
}
Add(Str_Enum,389233,140,140)
{
Delimiter=""
link(onEnum,9024364:doConvert,[])
link(onEndEnum,14252911:doSort,[(184,153)(184,188)])
link(String,4506909:Var2,[])
}
Add(Convertor,9024364,189,140)
{
Mode=1
link(onResult,13089371:doCase,[])
}
Add(ArrayRW,2322341,273,126)
{
link(Array,11069843:Var2,[])
}
Add(IntegerArray,4591465,273,63)
{
IntArray=[]
}
Add(ArraySort,14252911,308,182)
{
ArrayType=1
link(onEndSort,815268:doCount,[])
link(Array,11069843:Var3,[(314,110)])
}
Add(GetDataEx,11069843,273,105)
{
link(Data,4591465:Array,[])
}
Add(Case,13089371,231,140)
{
Value=Integer(0)
link(onNextCase,2322341:doAdd,[])
}
Add(ArrayCountRepeats,815268,357,182)
{
ArrayType=1
link(onCount,9747463:doValue,[])
link(Array,14252911:ArraySort,[(363,170)(350,170)(350,228)(314,228)])
}
Add(MT_MultiMem,9747463,406,182)
{
link(onData,12300473:doCompare,[(474,188)(474,223)(401,223)(401,258)])
}
Add(If_else,12300473,413,252)
{
Op2=Integer(1)
link(onFalse,13579507:doEvent1,[])
link(Op1,9630900:Var2,[])
}
Add(Math,14873352,525,259)
{
OpType=2
link(onResult,11017156:doOperation,[])
link(Op1,16059183:Var2,[])
link(Op2,13830514:Var3,[(538,236)])
}
Add(GetDataEx,9630900,413,231)
{
link(Data,9747463:Value2,[])
}
Add(Math,11017156,637,259)
{
Point(doDefault)
link(Op1,753617:Var1,[(643,247)(625,247)(625,303)])
}
Add(For,12601497,490,308)
{
IncludeEnd=1
link(onEvent,2705495:doStrCat,[])
link(End,13830514:Var2,[])
}
Add(StrCat,2705495,574,308)
{
Point(doClear)
link(Str1,11299000:Var1,[(580,296)(555,296)(555,356)])
link(Str2,16059183:Var3,[(587,229)])
}
Add(Hub,13579507,455,259)
{
link(onEvent1,14873352:doOperation,[])
link(onEvent2,12601497:doFor,[(480,272)(480,314)])
}
Add(GetDataEx,13830514,497,231)
{
Angle=3
link(Data,9630900:Var3,[])
}
Add(GetDataEx,16059183,525,224)
{
Angle=3
link(Data,9747463:Value1,[(412,229)])
}
Add(FormatStr,1600567,651,378)
{
DataCount=3
Mask="%1 %2 %3"
link(onFString,12596441:onRes,[(719,384)(719,97)])
link(Str1,4506909:Var3,[(657,117)])
link(Str2,11299000:Var3,[(664,356)])
link(Str3,753617:Var3,[(671,303)])
}
Add(Hub,5462783,49,77)
{
OutCount=5
link(onEvent1,4591465:doClear,[])
link(onEvent2,6405299:In,[])
link(onEvent3,9905071:In,[(95,97)(95,111)])
link(onEvent4,389233:doEnum,[(89,104)(89,146)])
link(onEvent5,1600567:doString,[(80,111)(80,384)])
}
Add(GetDataEx,4506909,140,112)
{
link(Data,12596441:String,[(146,66)(97,66)])
}
Add(GetDataEx,11299000,574,351)
{
link(Data,2705495:Result,[])
}
Add(GetDataEx,753617,637,298)
{
link(Data,11017156:Result,[])
}
Add(LineBreak,6154385,490,350)
{
link(Out,2705495:doClear,[(547,356)(547,321)])
Primary=[6405299,-385,-266]
}
Add(LineBreak,11176904,588,266)
{
link(Out,11017156:doDefault,[])
Primary=[9905071,-483,-161]
}
END_SDK
Add(InlineCode,396202,378,210)
{
WorkPoints=#6:doWork|
EventPoints=#5:onRes|
VarPoints=#
DataPoints=#5:inStr|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|21:uses kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|4: |9: public|28: inStr,onRes: THI_Event;|48: procedure doWork(var dt: TData; idx: word);|0:|5: end;|0:|14:implementation|0:|55:procedure THiAsmClass.doWork(var dt: TData; idx: word);|35:var arrStr: array [1..9] of string;|52: sIn,sOut: string; chr: Char; i,iRes: integer; |5:begin|41: sIn := ToStringEvent(inStr); iRes := 0;|30: for i := 1 to Length(sIn) do|7: begin|18: chr := sIn[i];|15: case chr of|38: '1': arrStr[1] := arrStr[1] + chr;|38: '2': arrStr[2] := arrStr[2] + chr;|38: '3': arrStr[3] := arrStr[3] + chr;|38: '4': arrStr[4] := arrStr[4] + chr;|38: '5': arrStr[5] := arrStr[5] + chr;|38: '6': arrStr[6] := arrStr[6] + chr;|38: '7': arrStr[7] := arrStr[7] + chr;|86: '8': arrStr[8] := arrStr[8] + chr; |42: '9': arrStr[9] := arrStr[9] + chr; |8: end;|6: end;|10: |24: sOut := sIn + ' '; |2: |20: for i := 1 to 9 do|33: if Length(arrStr[i]) > 1 then|11: begin|33: sOut := sOut + arrStr[i];|45: iRes := iRes + (Length(arrStr[i])*i);|10: end;|53: _hi_OnEvent(onRes,sOut + ' ' + Int2Str(iRes)); |4:end;|0:|4:end.|
link(onRes,8236632:doText,[])
link(inStr,13122324:Var3,[(384,201)])
}
Add(Button,1209941,322,210)
{
Top=85
Width=70
Caption="IC_Андр"
link(onClick,396202:doWork,[])
}
Add(MultiElementEx,13826365,378,112)
{
link(onRes,13965869:doText,[])
link(String,5427376:Var3,[(384,103)])
}
BEGIN_SDK
Add(EditMultiEx,4490462,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,4490462: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,4490462: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
Add(Button,6066402,322,112)
{
Top=35
Width=70
Caption="Блок_Л"
link(onClick,13826365:doCalc,[])
}
Add(Edit,7006104,427,161)
{
Left=75
Top=60
Width=540
}
Add(Edit,8236632,427,210)
{
Left=75
Top=85
Width=540
}
Add(InlineCode,1423798,378,259)
{
WorkPoints=#6:doCalc|
EventPoints=#5:onRes|
VarPoints=#
DataPoints=#5:inStr|
Code=#15:unit HiAsmUnit;|9:interface|21:uses kol,Share,Debug;|4:type|28: THiAsmClass = class(TDebug)|10: private|9: public|21: inStr: THI_Event;|21: onRes: THI_Event;|49: procedure doCalc(var _Data:TData; Index:Word);|5: end;|14:implementation|29:procedure THiAsmClass.doCalc;|20:var s,ss,sss:string;|22: i,j,k,Sum:integer;|33: Numb: Array[0..9] of integer;|6: begin|31: for i:=0 to 9 do Numb[i]:=0;|9: ss:='';|9: Sum:=0;|26: s:=ToStringEvent(inStr);|15: j:=Length(s);|90: for i:=1 to j do if s[i] in ['0'..'9'] then Numb[str2int(s[i])]:=Numb[str2int(s[i])]+1;|19: for i:=1 to 9 do|9: begin|23: if Numb[i]>1 then|12: begin|24: sss:=int2str(i);|45: for j:=1 to Numb[i] do ss:=ss + sss;|30: Sum:=Sum + i*Numb[i]; |11: end;|14: end; |61: _hi_onEvent(onRes,s + ' ' + ss + ' ' + int2str(Sum));|5: end;|4:end.|
link(onRes,15952692:doText,[])
link(inStr,7746410:Var3,[(384,250)])
}
Add(GetDataEx,7469338,364,147)
{
link(Data,5427376:Var2,[])
}
Add(GetDataEx,5427376,364,98)
{
link(Data,13314783:Text,[])
}
Add(GetDataEx,13122324,364,196)
{
link(Data,7469338:Var2,[])
}
Add(Button,681772,322,259)
{
Top=110
Width=70
Caption="IC_Л"
link(onClick,1423798:doCalc,[])
}
Add(Edit,15952692,427,259)
{
Left=75
Top=110
Width=540
}
Add(InlineCode,13579044,392,308)
{
WorkPoints=#6:doWork|
EventPoints=#5:onRes|
VarPoints=#
DataPoints=#
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|21:uses kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|4: |9: public|22: onRes: THI_Event;|48: procedure doWork(var dt: TData; idx: word);|0:|5: end;|0:|14:implementation|0:|55:procedure THiAsmClass.doWork(var dt: TData; idx: word);|35:var arrStr: array [1..9] of string;|22: sIn,sOut: string; |23: i,iRes: integer; |5:begin|44: sIn := ToString(dt); iRes := 0; sOut:=''; |57: IF sin='' then begin _hi_OnEvent(onRes,''); exit end;|36: for i:= 1 to 9 do arrStr[i] := '';|120: for i := 1 to Length(sIn) do IF sin[i] in ['1'..'9'] then arrStr[Str2Int(sin[i])] := arrStr[Str2Int(sin[i])] + sin[i];|20: for i := 1 to 9 do|33: if Length(arrStr[i]) > 1 then|11: begin|33: sOut := sOut + arrStr[i];|45: iRes := iRes + (Length(arrStr[i])*i);|10: end;|68: _hi_OnEvent(onRes,sin + ' '+ sOut + ' =' + Int2Str(iRes)); |4:end;|0:|4:end.|
link(onRes,4614870:doText,[])
}
Add(Button,6708452,294,308)
{
Top=135
Width=70
Caption="IC_Tad"
link(onClick,7516822:doData,[])
}
Add(Edit,4614870,448,308)
{
Left=75
Top=135
Width=540
}
Add(DoData,7516822,343,308)
{
link(onEventData,13579044:doWork,[])
link(Data,7746410:Var2,[(349,299)(370,299)])
}
Add(GetDataEx,7746410,364,245)
{
link(Data,13122324:Var2,[])
}

карма: 19

0
Ответов: 39
Рейтинг: -1
#25: 2018-05-27 16:51:41 ЛС | профиль | цитата
Hiasm глючный?
Чет с кодировками?
С с сайта в ручную копирую текст помещаю в мемо
и вижу эту

дичь

Редактировалось 2 раз(а), последний 2018-05-27 16:52:34
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#26: 2018-05-27 17:03:52 ЛС | профиль | цитата
Включи русскую раскладку.
Леонид, ещё вариант (на 50 байт короче )
Add(InlineCode,396202,217,308)
{
WorkPoints=#6:doWork|
EventPoints=#5:onRes|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|21:uses kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|4: |9: public|22: onRes: THI_Event;|48: procedure doWork(var dt: TData; idx: word);|0:|5: end;|0:|14:implementation|0:|55:procedure THiAsmClass.doWork(var dt: TData; idx: word);|35:var arrStr: array [1..9] of string;|22: sIn,sOut: string; |25: i,iRes,n: integer; |5:begin|44: sIn := ToString(dt); iRes := 0; sOut:=''; |57: IF sin='' then begin _hi_OnEvent(onRes,''); exit end;|36: for i:= 1 to 9 do arrStr[i] := '';|31: for i := 1 to Length(sIn) do |8: begin|25: n := ord(sin[i])-48; |64: IF sin[i] in ['1'..'9'] then arrStr[n] := arrStr[n] + sin[i]|8: end ;|20: for i := 1 to 9 do|33: if Length(arrStr[i]) > 1 then|11: begin|33: sOut := sOut + arrStr[i];|45: iRes := iRes + (Length(arrStr[i])*i);|10: end;|68: _hi_OnEvent(onRes,sin + ' '+ sOut + ' =' + Int2Str(iRes)); |4:end;|0:|4:end.|
}


Редактировалось 1 раз(а), последний 2018-05-27 17:04:24
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 39
Рейтинг: -1
#27: 2018-05-27 17:08:24 ЛС | профиль | цитата
Чудеса)
карма: 0

0
Ответов: 8888
Рейтинг: 823
#28: 2018-05-27 17:32:01 ЛС | профиль | цитата
Tad, нет, всё, а то коллега Silva не сможет выбрать один из шести стогов, так и погибнет с голода
карма: 19

0
Ответов: 43
Рейтинг: -2
#29: 2018-05-27 17:53:56 ЛС | профиль | цитата
Tad, в твоих способностях считать байты уже наверно никто не сомневается на этом форуме. (помнится ещё те времена когда за самую извращённую и не понятную схему звания давали. Типа сделай так что-бы другие оху-ли и получи значок пиОнера) Ну мог бы предложить ещё короче на vbs но ты ведь как бы эти байты начал считать то куда бежать Задача то сама линейная зачем там ещё циклы добавлять и функции Вообщем суть то такова, коли не хотите запутанных и глючных схем учите яву, делать логику на рассыпке дело личное. (для сравнения: занести данные в кубик, почистить, изменить свойство, подключить/отключить точку и вся эта катовасия превращается в глючеподобную неразбериху. Откроите через месяц другой и сами х.ч поимёте . В своём примере я не выпрыгивал из подштанников и не считал байты но думал о его читаемости для начинающих, видать vb на пользу пошёл )
карма: -2

0
Ответов: 16884
Рейтинг: 1239
#30: 2018-05-27 18:30:13 ЛС | профиль | цитата
andrestudioEX, я начинал с Искра-555 (ОЗУ - 16 кб, хард 5 мб), а с 1999 года работаю на фирме где премируют за каждый сэкономленный байт памяти и такт процессора (считать такты тоже умею).
Так что это уже "в крови".

Редактировалось 1 раз(а), последний 2018-05-27 18:39:13
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
30
Сообщение
...
Прикрепленные файлы
(файлы не залиты)