Netspirit писал(а): 1) Получаем второе слово с команды HAAAPSI
2) Делаем с него hash
3) Этот hash используем в команде USER (4-й параметр)
Преобразовал слово после Haaapsi в хеш ничего не изменилось.
Add(MainForm,14058530,42,161) { Width=503 Height=389 Position=1 link(onCreate,4961683:doEvent1,[]) } Add(Edit,16355833,196,154) { Left=5 Top=25 Width=145 Ctl3D=1 Text="15s24vpoo2" Alignment=2 } Add(Label,16268837,133,98) { Left=5 Top=10 Width=106 Height=17 Caption="Код востановления:" } Add(Label,4084884,51,94) { Left=5 Top=50 Width=26 Height=17 Caption="Лог:" } Add(Memo,7124130,567,175) { Left=5 Top=65 Width=225 Height=125 Ctl3D=1 AddType=1 ScrollBars=2 } Add(TCP_Client,16482401,322,175) { Port=6667 IP="95.172.133.164" link(onRead,5432023:doCharset,[]) } Add(Charset,5432023,364,175) { Type=7 link(onCharset,12970698:doEvent1,[]) } Add(FormatStr,4120375,196,210) { DataCount=1 Mask=":ru IDENT 152 -1 4030 1 2 :GALA\r\nRECOVER %1\r\n" link(onFString,7592917:doWork2,[]) link(Str1,16355833:Text,[]) } Add(Button,3527773,112,210) { Left=160 Top=10 Width=70 Height=50 Font=[MS Sans Serif,8,1,0,1] Ctl3D=0 Caption="Go" link(onClick,4120375:doString,[]) } Add(Label,7710592,91,96) { Left=5 Top=240 Width=49 Height=17 Caption="Запрост:" } Add(Memo,10086970,936,401) { Left=5 Top=255 Width=370 Height=85 Ctl3D=1 Strings=#31::ru IDENT 152 -1 4030 1 2 :GALA|18:RECOVER 15s24vpoo2|31:PHONE 360 640 1 2 :MPP_v.8.0.12| } Add(Button,5030718,888,463) { Left=150 Top=220 Width=80 Height=25 Ctl3D=0 Caption="Send" link(onClick,12470601:doData,[]) } Add(DoData,12470601,936,463) { link(onEventData,16221038:doEvent1,[(974,469)(974,468)]) link(Data,10086970:Text,[]) } Add(LineBreakEx,7187201,245,225) { Type=1 link(OnEvent,7592917:doWork3,[(284,231)]) } Add(HubEx,7592917,280,210) { link(onEvent,16482401:doSend,[(310,216)(310,195)]) } Add(Replace,8906506,623,245) { SubStr="HAAAPSI " link(onReplace,10709028:doReplace,[]) } Add(Hub,12970698,420,175) { OutCount=3 link(onEvent1,1321069:doWork2,[]) link(onEvent2,10150143:doCompare,[(532,188)(532,244)]) link(onEvent3,360502:doCompare,[(452,195)(452,293)]) } Add(StrMask,10150143,567,238) { Mask="HAAAPSI*" link(onTrue,8906506:doReplace,[]) } Add(Label,9510788,868,245) { Left=245 Top=65 Width=12 Height=17 Caption="H" } Add(StrMask,360502,469,287) { Mask="REGISTER*" link(onTrue,3382646:doReplace,[]) } Add(Replace,3382646,518,294) { SubStr="REGISTER" link(onReplace,9888770:doEvent1,[]) } Add(Label,5654986,686,294) { Left=245 Top=85 Width=12 Height=17 Caption="R" } Add(FormatStr,4356559,686,350) { Mask="USER %1 %2" link(onFString,10908758:doReplace,[]) link(Str1,5654986:Caption,[]) link(Str2,9510788:Caption,[(699,314)(874,314)]) } Add(LineBreakEx,13967977,1071,350) { } Add(Hub,9888770,560,294) { link(onEvent1,8749952:doTrim,[]) link(onEvent2,4356559:doString,[(653,307)(653,356)]) } Add(Replace,10908758,749,350) { SubStr="20" link(onReplace,2231070:doReplace,[]) } Add(Replace,10709028,672,245) { SubStr="20" link(onReplace,1571027:doValue,[]) } Add(Trim,8749952,602,294) { link(onTrim,5654986:doText,[]) } Add(Replace,2231070,819,350) { SubStr="\r\n" link(onReplace,16195625:doEvent1,[]) } Add(Hub,16195625,868,350) { link(onEvent1,16176603:doEvent1,[]) link(onEvent2,10086970:doText,[(906,369)(906,428)]) } Add(Label,3042770,175,94) { Left=245 Top=105 Width=13 Height=17 Font=[MS Sans Serif,8,1,255,1] Caption="H" } Add(InlineCode,3021671,805,245) { @Color=11206570 WorkPoints=#10:doCalcHash| EventPoints=#8:onResult| DataPoints=#3:Str| Code=#15:unit HiAsmUnit;|0:|9:interface|0:|4:uses|22: KOL, Share, Hash152;|0:|4:type|21: THiAsmClass = class|11: private|0:|10: public|21: Str: THI_Event;|29: onResult: THI_Event; |58: procedure doCalcHash(var _Data: TData; Index: Word);|6: end;|0:|0:|14:implementation|0:|0:|0:|65:procedure THiAsmClass.doCalcHash(var _Data: TData; Index: Word); |3:var|14: Hash: string;|5:begin|57: Hash := Hash152.CreateHash(ReadString(_Data, Str, ''));|42: _hi_CreateEvent(_Data, @onResult, Hash);|4:end;|0:|4:end.| link(onResult,9510788:doText,[]) link(Str,1571027:Value,[(811,233)(786,233)(786,285)(748,285)]) } Add(Hub,4961683,91,175) { link(onEvent1,16482401:doOpen,[]) } Add(Charset,6194935,1022,350) { Type=6 link(onCharset,12948468:doWork2,[]) } Add(Hub,16176603,980,350) { link(onEvent1,6194935:doCharset,[]) link(onEvent2,12948468:doWork3,[(1061,363)]) } Add(HubEx,12948468,1057,350) { link(onEvent,13967977:doWork,[]) } Add(TCP_Client,2385698,1043,462) { Port=6667 IP="95.172.133.164" link(onRead,1321069:doWork3,[(1087,468)(1087,127)(550,127)]) } Add(Hub,16221038,980,462) { link(onEvent1,2385698:doOpen,[]) link(onEvent2,2385698:doSend,[(1018,475)(1018,482)]) } Add(HubEx,1321069,546,175) { link(onEvent,7124130:doAdd,[]) } Add(Memory,1571027,742,245) { link(onData,3021671:doCalcHash,[]) }
--- Добавлено в 2016-12-06 15:21:42В схеме от Sla8a так же подставляю Inline аналогично..
Add(MainForm,4378101,70,56) { Width=935 Height=600 Position=1 link(onCreate,16482401:doOpen,[]) } Add(Edit,16355833,581,665) { Left=5 Top=25 Width=145 Ctl3D=1 Text="15s24vpoo2" Alignment=2 } Add(Memo,7124130,364,77) { @Hint=#31:Это последние полученные данные| Left=5 Top=65 Width=225 Height=125 Ctl3D=1 ScrollBars=2 AddHint(-84,-32,194,13,@Hint) } Add(TCP_Client,16482401,126,70) { Port=6667 IP="95.172.133.164" link(onRead,6527222:doEvent1,[]) } Add(Charset,5432023,203,77) { Type=7 link(onCharset,1804923:doReplace,[]) } Add(FormatStr,4120375,581,721) { Mask=":ru IDENT 152 -1 4030 1 2 :GALA\r\nRECOVER %1\r\nPHONE 360 640 1 2 :MPP_v.8.0.12\r\n" link(onFString,3352258:doWork,[]) link(Str1,16355833:Text,[]) } Add(Replace,1804923,252,77) { SubStr=" " DestStr="\r\n" link(onReplace,2130206:doEvent1,[(306,83)(306,76)]) } Add(Hub,6527222,175,70) { OutCount=3 link(onEvent1,7124130:doClear,[(294,76)(294,90)]) link(onEvent2,5432023:doCharset,[]) link(onEvent3,5559791:doRead,[(198,90)(198,783)]) } Add(Memo,8633362,483,70) { @Hint=#30:Это лог всех полученных данных| Left=250 Top=65 Width=285 Height=360 Ctl3D=1 AddType=1 ScrollBars=2 AddHint(-74,-55,181,13,@Hint) } Add(Hub,2130206,329,70) { link(onEvent1,8633362:doAdd,[]) link(onEvent2,7124130:doAdd,[]) } Add(ArrayRW,5559791,224,777) { @Hint=#20:Читаем первую строку| Index=Integer(0) link(onRead,8821029:doCase,[]) link(Array,6333921:getVar,[]) AddHint(-60,49,131,13,@Hint) AddHint(10,-22,21,13,Index) } Add(Case,3396458,427,560) { Value=String(HAAAPSI) link(onNextCase,1321523:doCase,[(485,566)(485,446)(422,446)(422,356)]) link(onTrue,6457300:doEvent1,[]) AddHint(-107,3,71,13,Value) } Add(Case,1321523,441,350) { Value=String(REGISTER) link(onTrue,6423993:doEvent1,[]) AddHint(-124,7,80,13,Value) } Add(Case,8821029,441,777) { Value=String(PING) link(onNextCase,3396458:doCase,[(485,783)(485,748)(422,748)(422,566)]) link(onTrue,2700626:doData,[]) AddHint(-93,12,51,13,Value) } Add(DoData,2700626,511,784) { Data=String(PONG) link(onEventData,11907089:doWork,[]) AddHint(-13,-22,56,13,Data) } Add(FormatStr,9206063,567,378) { DataCount=4 Mask="USER\r\n%1\r\n%2\r\n%3\r\n%4" link(onFString,10753192:doAdd,[]) link(Str1,11136958:Item,[]) link(Str2,7645903:Item,[(580,313)(615,313)]) link(Str3,5983206:Value,[(587,338)(755,338)]) link(Str4,9087631:Var,[]) } Add(ArrayRW,11136958,567,189) { Index=Integer(1) link(Array,14378459:getVar,[]) AddHint(14,-18,21,13,Index) } Add(Hub,6423993,518,357) { OutCount=5 link(onEvent1,11136958:doRead,[(541,363)(541,195)]) link(onEvent2,7645903:doRead,[(551,370)(551,223)]) link(onEvent3,11549066:doRead,[(559,377)(559,279)]) link(onEvent4,9206063:doString,[]) link(onEvent5,3953283:doReplace,[(546,391)(546,447)]) } Add(ArrayRW,7645903,609,217) { Index=Integer(2) link(Array,3768665:getVar,[]) AddHint(8,-18,21,13,Index) } Add(Memo,10753192,672,378) { Left=5 Top=205 Width=225 Height=205 } Add(Hub,6457300,483,567) { link(onEvent1,13881349:doRead,[]) link(onEvent2,4120375:doString,[(539,580)(539,727)]) } Add(ArrayRW,13881349,567,567) { Index=Integer(1) link(onRead,425307:doValue,[]) link(Array,6190941:getVar,[]) AddHint(10,-19,21,13,Index) } Add(Memory,13036011,770,567) { } Add(Check,1605529,651,616) { Caption="Сделать ХЭШ!" } Add(Memory,5983206,749,273) { } Add(ArrayRW,11549066,651,273) { Index=Integer(3) link(onRead,7542950:doCharset,[]) link(Array,5436636:getVar,[]) AddHint(9,-20,21,13,Index) } Add(LineBreak,6294035,770,616) { Caption="ХЭШ" Type=1 link(Data,13036011:Value,[]) Primary=[9087631,-182,-266] } Add(LineBreakEx,4802288,378,140) { Caption="data" Type=3 link(_Data,7124130:Array,[]) } Add(LineBreakEx,6333921,224,735) { Caption="data" Type=2 } Add(LineBreakEx,14378459,567,154) { Caption="data" Type=2 } Add(LineBreakEx,11907089,560,784) { Caption="send" } Add(LineBreakEx,3352258,630,721) { Caption="send" } Add(LineBreakEx,13179498,63,98) { Caption="send" Type=1 link(OnEvent,16482401:doSend,[(116,104)(116,90)]) } Add(LineBreakEx,10934201,742,441) { Caption="send" } Add(LineBreakEx,3768665,609,182) { Caption="data" Type=2 } Add(LineBreakEx,5436636,651,238) { Caption="data" Type=2 } Add(LineBreakEx,6190941,567,532) { Caption="data" Type=2 } Add(Charset,7542950,700,273) { Type=6 link(onCharset,5983206:doValue,[]) } Add(Replace,3953283,672,441) { SubStr="\r\n" DestStr=" " link(onReplace,10934201:doWork,[]) link(Str,10753192:Text,[]) } Add(InlineCode,3021671,700,567) { @Color=11206570 WorkPoints=#10:doCalcHash| EventPoints=#8:onResult| DataPoints=#3:Str| Code=#15:unit HiAsmUnit;|0:|9:interface|0:|4:uses|22: KOL, Share, Hash152;|0:|4:type|21: THiAsmClass = class|11: private|0:|10: public|21: Str: THI_Event;|29: onResult: THI_Event; |58: procedure doCalcHash(var _Data: TData; Index: Word);|6: end;|0:|0:|14:implementation|0:|0:|0:|65:procedure THiAsmClass.doCalcHash(var _Data: TData; Index: Word); |3:var|14: Hash: string;|5:begin|57: Hash := Hash152.CreateHash(ReadString(_Data, Str, ''));|42: _hi_CreateEvent(_Data, @onResult, Hash);|4:end;|0:|4:end.| link(onResult,13036011:doValue,[]) link(Str,425307:Value,[(706,555)(684,555)(684,609)(636,609)]) } Add(Memory,425307,630,567) { link(onData,3021671:doCalcHash,[]) }
Редактировалось 1 раз(а), последний 2016-12-06 15:21:42
|