Вверх ↑
Ответов: 2205
Рейтинг: 675
#1: 2016-12-08 12:37:45 ЛС | профиль | цитата
Netspirit писал(а):
Нюанс в том, что в команду USER имя пользователя должно подаваться в UTF-8

Netspirit, нюанс не в этом. Можете удалить элемент Charset преобразующий кодировку имя пользователя в выложенной мной выше схемы. Это никак не повредит подключению.
Вот вам головоломка.
Это схема будет подключатся:


Add(MainForm,4378101,77,84)
{
Width=935
Height=600
Position=1
link(onCreate,16482401:doOpen,[])
}
Add(Edit,16355833,504,630)
{
Left=5
Top=25
Width=145
Ctl3D=1
Text="15s24vpoo2"
Alignment=2
}
Add(Memo,7124130,371,105)
{
@Hint=#31:Это последние полученные данные|
Left=5
Top=65
Width=225
Height=125
Ctl3D=1
ScrollBars=2
AddHint(-84,-32,194,13,@Hint)
}
Add(TCP_Client,16482401,133,98)
{
Port=6667
IP="95.172.133.164"
link(onRead,6527222:doEvent1,[])
}
Add(Charset,5432023,217,105)
{
Type=7
link(onCharset,1804923:doReplace,[])
}
Add(FormatStr,4120375,504,672)
{
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,259,105)
{
SubStr=" "
DestStr="\r\n"
link(onReplace,2130206:doEvent1,[(313,111)(313,104)])
}
Add(Hub,6527222,182,98)
{
OutCount=3
link(onEvent1,7124130:doClear,[(305,104)(305,118)])
link(onEvent2,5432023:doCharset,[])
link(onEvent3,5559791:doRead,[(205,118)(205,790)])
}
Add(Memo,8633362,490,98)
{
@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,336,98)
{
link(onEvent1,8633362:doAdd,[])
link(onEvent2,7124130:doAdd,[])
}
Add(ArrayRW,5559791,231,784)
{
@Hint=#20:Читаем первую строку|
Index=Integer(0)
link(onRead,8821029:doCase,[])
link(Array,6333921:getVar,[])
AddHint(-95,44,131,13,@Hint)
AddHint(10,-22,21,13,Index)
}
Add(Case,3396458,364,567)
{
Value=String(HAAAPSI)
link(onNextCase,1321523:doCase,[(424,573)(424,540)(359,540)(359,363)])
link(onTrue,6457300:doEvent1,[])
AddHint(-1,39,71,13,Value)
}
Add(Case,1321523,378,357)
{
Value=String(REGISTER)
link(onTrue,6423993:doEvent1,[])
AddHint(-36,-18,80,13,Value)
}
Add(Case,8821029,378,784)
{
Value=String(PING)
link(onNextCase,3396458:doCase,[(422,790)(422,755)(359,755)(359,573)])
link(onTrue,2700626:doData,[])
AddHint(-13,33,51,13,Value)
}
Add(DoData,2700626,448,791)
{
Data=String(PONG)
link(onEventData,11907089:doWork,[])
AddHint(-13,-22,56,13,Data)
}
Add(FormatStr,9206063,504,427)
{
DataCount=4
Mask="USER %1 %2 %3 %4\r\n"
Point(FString)
link(onFString,10753192:doAdd,[])
link(Str1,11136958:Item,[])
link(Str2,7645903:Item,[(517,375)(552,375)])
link(Str3,5983206:Value,[(524,389)(636,389)])
link(Str4,9087631:Var,[])
}
Add(ArrayRW,11136958,504,196)
{
Index=Integer(1)
link(Array,14378459:getVar,[])
AddHint(14,-18,21,13,Index)
}
Add(Hub,6423993,455,364)
{
OutCount=5
link(onEvent1,11136958:doRead,[(478,370)(478,202)])
link(onEvent2,7645903:doRead,[(488,377)(488,230)])
link(onEvent3,11549066:doRead,[(496,384)(496,265)])
link(onEvent4,9206063:doString,[(487,391)(487,433)])
link(onEvent5,4847400:doData,[(479,398)(479,489)])
}
Add(ArrayRW,7645903,546,224)
{
Index=Integer(2)
link(Array,3768665:getVar,[])
AddHint(8,-18,21,13,Index)
}
Add(Memo,10753192,651,427)
{
Left=5
Top=440
Width=435
Height=85
}
Add(Hub,6457300,420,574)
{
link(onEvent1,13881349:doRead,[])
link(onEvent2,4120375:doString,[(476,587)(476,678)])
}
Add(ArrayRW,13881349,504,574)
{
Index=Integer(1)
link(onRead,3021671:doCalcHash,[])
link(Array,6190941:getVar,[])
AddHint(10,-19,21,13,Index)
}
Add(Memory,13036011,588,574)
{
}
Add(Memory,5983206,630,259)
{
}
Add(ArrayRW,11549066,581,259)
{
Index=Integer(3)
link(onRead,5983206:doValue,[])
link(Array,5436636:getVar,[])
AddHint(9,-20,21,13,Index)
}
Add(LineBreak,13802491,588,623)
{
Caption="ХЭШ"
Type=1
link(Data,13036011:Value,[])
Primary=[9087631,-63,-224]
}
Add(LineBreakEx,4802288,385,168)
{
Caption="data"
Type=3
link(_Data,7124130:Array,[])
}
Add(LineBreakEx,6333921,231,742)
{
Caption="data"
Type=2
}
Add(LineBreakEx,14378459,504,161)
{
Caption="data"
Type=2
}
Add(LineBreakEx,11907089,497,791)
{
Caption="send"
}
Add(LineBreakEx,3352258,553,672)
{
Caption="send"
}
Add(LineBreakEx,13179498,70,126)
{
Caption="send"
Type=1
link(OnEvent,16482401:doSend,[(123,132)(123,118)])
}
Add(LineBreakEx,10934201,553,483)
{
Caption="send"
}
Add(LineBreakEx,3768665,546,189)
{
Caption="data"
Type=2
}
Add(LineBreakEx,5436636,581,224)
{
Caption="data"
Type=2
}
Add(LineBreakEx,6190941,504,539)
{
Caption="data"
Type=2
}
Add(Charset,7542950,77,854)
{
Type=6
}
Add(InlineCode,3021671,546,574)
{
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,[])
}
Add(DoData,4847400,504,483)
{
link(onEventData,10934201:doWork,[])
link(Data,9206063:FString,[])
}
А вот эта нет:


Add(MainForm,4378101,77,84)
{
Width=935
Height=600
Position=1
link(onCreate,16482401:doOpen,[])
}
Add(Edit,16355833,504,630)
{
Left=5
Top=25
Width=145
Ctl3D=1
Text="15s24vpoo2"
Alignment=2
}
Add(Memo,7124130,371,105)
{
@Hint=#31:Это последние полученные данные|
Left=5
Top=65
Width=225
Height=125
Ctl3D=1
ScrollBars=2
AddHint(-84,-32,194,13,@Hint)
}
Add(TCP_Client,16482401,133,98)
{
Port=6667
IP="95.172.133.164"
link(onRead,6527222:doEvent1,[])
}
Add(Charset,5432023,217,105)
{
Type=7
link(onCharset,1804923:doReplace,[])
}
Add(FormatStr,4120375,504,672)
{
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,259,105)
{
SubStr=" "
DestStr="\r\n"
link(onReplace,2130206:doEvent1,[(313,111)(313,104)])
}
Add(Hub,6527222,182,98)
{
OutCount=3
link(onEvent1,7124130:doClear,[(305,104)(305,118)])
link(onEvent2,5432023:doCharset,[])
link(onEvent3,5559791:doRead,[(205,118)(205,790)])
}
Add(Memo,8633362,490,98)
{
@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,336,98)
{
link(onEvent1,8633362:doAdd,[])
link(onEvent2,7124130:doAdd,[])
}
Add(ArrayRW,5559791,231,784)
{
@Hint=#20:Читаем первую строку|
Index=Integer(0)
link(onRead,8821029:doCase,[])
link(Array,6333921:getVar,[])
AddHint(-95,44,131,13,@Hint)
AddHint(10,-22,21,13,Index)
}
Add(Case,3396458,364,567)
{
Value=String(HAAAPSI)
link(onNextCase,1321523:doCase,[(424,573)(424,540)(359,540)(359,363)])
link(onTrue,6457300:doEvent1,[])
AddHint(-1,39,71,13,Value)
}
Add(Case,1321523,378,357)
{
Value=String(REGISTER)
link(onTrue,6423993:doEvent1,[])
AddHint(-36,-18,80,13,Value)
}
Add(Case,8821029,378,784)
{
Value=String(PING)
link(onNextCase,3396458:doCase,[(422,790)(422,755)(359,755)(359,573)])
link(onTrue,2700626:doData,[])
AddHint(-13,33,51,13,Value)
}
Add(DoData,2700626,448,791)
{
Data=String(PONG)
link(onEventData,11907089:doWork,[])
AddHint(-13,-22,56,13,Data)
}
Add(FormatStr,9206063,504,427)
{
DataCount=4
Mask="USER %1 %2 %3 %4"
Point(FString)
link(onFString,10753192:doAdd,[])
link(Str1,11136958:Item,[])
link(Str2,7645903:Item,[(517,375)(552,375)])
link(Str3,5983206:Value,[(524,389)(636,389)])
link(Str4,9087631:Var,[])
}
Add(ArrayRW,11136958,504,196)
{
Index=Integer(1)
link(Array,14378459:getVar,[])
AddHint(14,-18,21,13,Index)
}
Add(Hub,6423993,455,364)
{
OutCount=5
link(onEvent1,11136958:doRead,[(478,370)(478,202)])
link(onEvent2,7645903:doRead,[(488,377)(488,230)])
link(onEvent3,11549066:doRead,[(496,384)(496,265)])
link(onEvent4,9206063:doString,[(487,391)(487,433)])
link(onEvent5,4847400:doData,[(479,398)(479,489)])
}
Add(ArrayRW,7645903,546,224)
{
Index=Integer(2)
link(Array,3768665:getVar,[])
AddHint(8,-18,21,13,Index)
}
Add(Memo,10753192,651,427)
{
Left=5
Top=440
Width=435
Height=85
}
Add(Hub,6457300,420,574)
{
link(onEvent1,13881349:doRead,[])
link(onEvent2,4120375:doString,[(476,587)(476,678)])
}
Add(ArrayRW,13881349,504,574)
{
Index=Integer(1)
link(onRead,3021671:doCalcHash,[])
link(Array,6190941:getVar,[])
AddHint(10,-19,21,13,Index)
}
Add(Memory,13036011,588,574)
{
}
Add(Memory,5983206,630,259)
{
}
Add(ArrayRW,11549066,581,259)
{
Index=Integer(3)
link(onRead,5983206:doValue,[])
link(Array,5436636:getVar,[])
AddHint(9,-20,21,13,Index)
}
Add(LineBreak,13802491,588,623)
{
Caption="ХЭШ"
Type=1
link(Data,13036011:Value,[])
Primary=[9087631,-63,-224]
}
Add(LineBreakEx,4802288,385,168)
{
Caption="data"
Type=3
link(_Data,7124130:Array,[])
}
Add(LineBreakEx,6333921,231,742)
{
Caption="data"
Type=2
}
Add(LineBreakEx,14378459,504,161)
{
Caption="data"
Type=2
}
Add(LineBreakEx,11907089,497,791)
{
Caption="send"
}
Add(LineBreakEx,3352258,553,672)
{
Caption="send"
}
Add(LineBreakEx,13179498,70,126)
{
Caption="send"
Type=1
link(OnEvent,16482401:doSend,[(123,132)(123,118)])
}
Add(LineBreakEx,10934201,553,483)
{
Caption="send"
}
Add(LineBreakEx,3768665,546,189)
{
Caption="data"
Type=2
}
Add(LineBreakEx,5436636,581,224)
{
Caption="data"
Type=2
}
Add(LineBreakEx,6190941,504,539)
{
Caption="data"
Type=2
}
Add(Charset,7542950,77,854)
{
Type=6
}
Add(InlineCode,3021671,546,574)
{
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,[])
}
Add(DoData,4847400,504,483)
{
link(onEventData,10934201:doWork,[])
link(Data,9206063:FString,[])
}
Подсказка: все элементы одни и теже в обоих схемах.
карма: 11

0