Add(MainForm,1686861,126,77)
{
Width=449
Height=390
Position=1
link(onCreate,12197831:doWork1,[(166,97)(166,153)])
}
Add(Edit,775967,245,77)
{
Left=260
Top=5
Width=110
Text="123^567#9AB#DEF"
Point(doSelectAll)
}
Add(InlineCode,9782296,238,154)
{
WorkPoints=#6:doTest|
EventPoints=#46:onRes=Строка при совпадении с маской, иначе -1|
DataPoints=#33:Str=Строка для сравнения с маской|80:Mask=Маска, где # - один любой символ от 1 до F, ^ - один любой символ от 1 до 8|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|21:uses kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|26: _data_Data:THI_Event;|60: Str:THI_Event; //Строка для сравнения с Маской|109: Mask:THI_Event; //Маска, где # - один любой символ от 1 до F, ^ - один любой символ от 1 до 8 |24: onRes : THI_Event;|51: PROCEDURE doTest(var _Data:TData; Index:Word);|5: end;|0:|14:implementation|0:|29:PROCEDURE THiAsmClass.doTest;|21:var s,StrMask:string;|28: i,j,k,LenS,LenM:integer;|21: Res,Temp:boolean;|5:BEGIN|20: Res:=true; //false|32: s:=ReadString(_Data, Str, '');|39: StrMask:=ReadString(_Data, Mask, '');|47: if ((StrMask='') or (s='')) then Res:=false;|24: LenM:=length(StrMask);|24: LenS:=length(s)-LenM; |29: if LenS<0 then Res:=false;|0:|14: if Res then|9: begin|24: for i:=1 to LenS do|11: begin|12: j:=1;|13: repeat|19: Temp:=true;|37: if s[i+j-1]<>StrMask[j] then|15: begin|23: Temp:=false;|77: if StrMask[j]='#' then Temp:= (s[i+j-1] in ['A'..'F','1'..'9']); |67: if StrMask[j]='^' then Temp:= (s[i+j-1] in ['1'..'8']);|8: end;|38: if Temp then j:=j+1 else j:=LenM+1;|17: until j>LenM;|26: if Temp then break;|12: end; |8: end;|64: if Temp then _hi_onEvent(onRes,s) else _hi_onEvent(onRes,-1);|4:END;|4:end.|
link(onRes,12210695:doString,[])
link(Mask,8909342:Var2,[])
}
Add(Button,8738940,119,154)
{
Left=5
Top=5
link(onClick,12197831:doWork2,[])
}
Add(Edit,4570180,175,77)
{
Left=70
Top=5
Text="1000"
DataType=2
}
Add(StringTable,6102780,343,154)
{
Top=35
Width=430
Height=310
Columns=#10:Строка=205|13:Результат=205|
Grid=0
}
Add(FormatStr,12210695,294,154)
{
Mask="%1;%2"
link(onFString,6102780:doAdd,[])
link(Str1,12197831:Var1,[(300,142)(221,142)(221,191)(181,191)])
}
Add(GetDataEx,8909342,245,126)
{
link(Data,775967:Text,[])
}
Add(MultiElement,12197831,175,147)
{
link(onEvent1,6102780:doClear,[(279,153)(279,167)])
link(onEvent2,9782296:doTest,[])
link(Data1,4570180:Text,[])
link(Data2,8909342:Var1,[(188,131)])
link(onEvent3,1686861:doCaption,[(219,167)(219,125)(114,125)(114,83)])
}
BEGIN_SDK
Add(EditMulti,2416732,21,21)
{
EventCount=3
WorkCount=2
DataCount=2
VarCount=1
Width=622
Height=347
link(doWork1,5993116:doRandomize,[(265,27)(265,125)])
link(doWork2,7161636:doEvent1,[(42,34)(42,97)])
link(Var1,6396398:Value,[(27,354)(496,354)])
}
Add(For,7818562,112,105)
{
link(onEvent,11680134:doEvent1,[])
link(onStop,4259486:doStop,[(163,118)(163,62)])
link(End,2416732:Data1,[(125,42)(27,42)])
}
Add(Random,5993116,273,112)
{
Min=48
Max=75
link(onRandom,8035443:doConvert,[])
}
Add(Hub,7161636,63,91)
{
OutCount=4
link(onEvent1,2416732:onEvent1,[(360,97)(360,27)])
link(onEvent2,4259486:doStart,[(129,104)(129,55)])
link(onEvent3,7818562:doFor,[])
}
Add(TimeCounter,4259486,182,49)
{
link(onStop,4492718:doStrCat,[])
}
Add(For,1423395,210,112)
{
End=4
link(onEvent,5993116:doRandom,[])
link(onStop,4335433:doData,[(255,125)(255,160)])
}
Add(Convertor,8035443,322,112)
{
Mode=4
link(onResult,12708901:doWork2,[])
}
Add(Hub,11680134,168,105)
{
OutCount=3
link(onEvent1,13799969:doClear,[(378,111)(378,125)])
link(onEvent2,1423395:doFor,[])
link(onEvent3,6078785:doFor,[(200,125)(200,202)])
}
Add(Random,8659064,322,252)
{
Min=48
Max=75
link(onRandom,12391323:doConvert,[])
}
Add(For,597781,210,252)
{
End=2
link(onEvent,16125775:doCalc,[])
link(onStop,9952110:doReplace,[(268,265)(268,314)])
}
Add(Convertor,12391323,364,252)
{
Mode=4
link(onResult,14335108:doValue,[])
}
Add(Random,1020798,280,196)
{
Min=48
Max=75
link(onRandom,13983155:doConvert,[])
}
Add(For,6078785,217,196)
{
End=4
link(onEvent,1020798:doRandom,[])
link(onStop,597781:doFor,[(261,209)(261,233)(198,233)(198,258)])
}
Add(Convertor,13983155,322,196)
{
Mode=4
link(onResult,7363545:doWork3,[(361,202)])
}
Add(StrCat,13799969,406,112)
{
Point(doClear)
link(onStrCat,5071152:doWork2,[])
link(Str1,13799969:Result,[(412,100)(400,100)(400,156)(412,156)])
}
Add(DoData,4335433,308,154)
{
link(onEventData,7363545:doWork2,[])
link(Data,2416732:Data2,[(314,33)(34,33)])
}
Add(HubEx,12708901,357,112)
{
link(onEvent,13799969:doStrCat,[])
}
Add(HubEx,7363545,357,154)
{
Angle=3
link(onEvent,12708901:doWork3,[])
}
Add(MathParse,16125775,273,252)
{
DataCount=1
MathStr="%1*4 + 9"
ResultType=0
link(onResult,8659064:doRandom,[])
}
Add(Insert,5503329,518,252)
{
link(onInsert,5071152:doWork3,[(560,258)(560,190)(452,190)])
link(SubStr,14335108:Value,[(531,243)(510,243)(510,294)(419,294)])
link(Position,5704627:Var3,[(538,233)])
}
Add(Memory,1419153,462,112)
{
}
Add(Delete,7596451,462,252)
{
Count=1
link(onDelete,5503329:doInsert,[])
link(Str,15473944:Var2,[])
link(Position,5704627:Var2,[])
}
Add(GetDataEx,5704627,469,228)
{
Angle=3
link(Data,16125775:Result,[(404,233)(404,296)(279,296)])
}
Add(Memory,14335108,413,252)
{
link(onData,7596451:doDelete,[])
}
Add(HubEx,5071152,448,112)
{
link(onEvent,1419153:doValue,[])
}
Add(Replace,9952110,448,308)
{
SubStr=";"
DestStr="E"
link(onReplace,6396398:doValue,[])
link(Str,15473944:Var1,[(454,215)])
}
Add(GetDataEx,15473944,462,210)
{
link(Data,1419153:Value,[])
}
Add(StrCat,4492718,224,56)
{
Str2=" мсек"
link(onStrCat,2416732:onEvent3,[(428,62)(428,41)])
}
Add(Memory,6396398,490,308)
{
link(onData,2416732:onEvent2,[(574,314)(574,34)])
}
END_SDK
|
Ответов: 8975
Рейтинг: 824
|
|||
|
Rysik, а вот чистый Паскаль
|
|||
| карма: 19 |
|



Поиск
Друзья
Администрация