Вверх ↑
Этот топик читают: Гость
Ответов: 578
Рейтинг: 14
#1: 2015-06-24 18:40:44 ЛС | профиль | цитата
Переделайте пожалуйста кто разбирается код perl в схему пакета delphi

code_35910.txt
карма: 0

0
файлы: 1code_35910.txt [3.1KB] [486]
Ответов: 16884
Рейтинг: 1239
#2: 2015-06-24 21:44:11 ЛС | профиль | цитата
GanjaKyp, а самостоятельно http://www.opennet.ru/docs/RUS/perl_help/index.html
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 578
Рейтинг: 14
#3: 2015-06-26 17:09:46 ЛС | профиль | цитата
не пойму я как эту строку формировать правильно подскажите пожалуйста хотя бы какой нибудь одной строкой, а остальные я уже сам
карма: 0

0
Ответов: 4631
Рейтинг: 749
#4: 2015-06-26 18:18:53 ЛС | профиль | цитата
1) chr(0x64) - это значит один символ с кодом 100 (0x64 перевести в десятичный). У нас задается в FormatStr как 100
2) chr(length(encode_base64($myip, ""))) и остальные chr(length()) - длина последующей строки одним байтом. Использовать Convertor.IntToChar.
3) затем через chr(0x00) - сама строка (если написано encode_base64 то сконвертировать в base64)
Это всё соединяешь в FormatStr или StrCat, там где оно в коде идёт через точку. И посылаешь через TCP_Client.
карма: 26

0
Ответов: 578
Рейтинг: 14
#5: 2015-06-26 20:11:08 ЛС | профиль | цитата
а chr(0x00) в FormatStr будет 0 ?
------------ Дoбавленo в 20.11:
Netspirit, посмотри пожалуйста где накосячил, не работает почему то

Add(Button,970283,209,140)
{
Left=5
Top=134
Width=143
Caption="add to tv (one time auth)"
link(onClick,10172486:doEvent1,[])
}
Add(TCP_Client,15472385,833,126)
{
Port=55000
link(onRead,11052970:doMessage,[])
link(onConnect,3083427:doOn,[(881,139)(881,188)])
link(IP,8600175:Text,[])
}
Add(Edit,16717631,553,49)
{
Left=5
Top=86
Width=300
Text="iphone..iapp.samsung"
}
Add(Edit,14454047,441,399)
{
Left=5
Top=190
Width=300
Text="iphone.UE40ES6577.iapp.samsung"
}
Add(FormatStr,6943233,476,140)
{
DataCount=6
Mask="1000%10%2%30%4%50%6"
Point(FString)
link(onFString,8450259:doWork1,[])
link(Str1,13983868:Var,[])
link(Str2,9313167:Var,[])
link(Str3,11215738:Var,[])
link(Str4,1114409:Var,[])
link(Str5,6619924:Var,[])
link(Str6,11732322:Var,[])
}
Add(Message,11052970,896,126)
{
}
Add(Edit,14099462,308,49)
{
Left=5
Top=38
Width=300
Text="192.168.2.67"
}
Add(Edit,3380350,364,49)
{
Left=5
Top=62
Width=300
Text="48-5B-39-F1-AB-16"
}
Add(Edit,13295836,420,49)
{
Left=5
Top=110
Width=300
Text="Samsung Remote"
}
Add(MultiElement,10185401,308,140)
{
link(Data1,14099462:Text,[])
link(onEvent1,15247552:doWork1,[])
}
BEGIN_SDK
Add(EditMulti,3600581,357,154)
{
EventCount=1
WorkCount=1
DataCount=1
VarCount=2
Width=307
Height=102
link(doWork1,7830696:doCharset,[(371,160)(371,188)])
link(Var1,16134254:Value,[(363,235)(587,235)])
link(Var2,513290:Value,[(370,243)(440,243)])
}
Add(Charset,7830696,385,182)
{
Type=5
link(onCharset,513290:doValue,[])
link(Text,3600581:Data1,[(391,168)(363,168)])
}
Add(Length,12683900,483,182)
{
link(onLength,10691832:doConvert,[])
}
Add(Convertor,10691832,532,182)
{
Mode=4
link(onResult,16134254:doValue,[])
}
Add(Memory,16134254,581,182)
{
link(onData,3600581:onEvent1,[(639,188)(639,160)])
}
Add(Memory,513290,434,182)
{
link(onData,12683900:doLength,[])
}
END_SDK
Add(MultiElement,15247552,364,140)
{
link(onEvent1,9638973:doWork1,[])
link(Data1,3380350:Text,[])
}
BEGIN_SDK
Add(EditMulti,3101138,357,154)
{
EventCount=1
WorkCount=1
DataCount=1
VarCount=2
Width=307
Height=102
link(doWork1,14260338:doCharset,[(371,160)(371,188)])
link(Var1,12645920:Value,[(363,235)(587,235)])
link(Var2,12322025:Value,[(370,242)(440,242)])
}
Add(Charset,14260338,385,182)
{
Type=5
link(onCharset,12322025:doValue,[])
link(Text,3101138:Data1,[(391,168)(363,168)])
}
Add(Length,6451064,483,182)
{
link(onLength,229384:doConvert,[])
}
Add(Convertor,229384,532,182)
{
Mode=4
link(onResult,12645920:doValue,[])
}
Add(Memory,12645920,581,182)
{
link(onData,3101138:onEvent1,[(639,188)(639,160)])
}
Add(Memory,12322025,434,182)
{
link(onData,6451064:doLength,[])
}
END_SDK
Add(LineBreak,8852108,308,210)
{
Caption="myip"
Type=1
link(Data,10185401:Var1,[])
Primary=[13983868,168,-182]
}
Add(LineBreak,10862296,315,189)
{
Caption="myip"
Type=1
link(Data,10185401:Var2,[])
Primary=[9313167,168,-147]
}
Add(LineBreak,16285976,364,210)
{
Caption="mac"
Type=1
link(Data,15247552:Var1,[])
Primary=[11215738,126,-154]
}
Add(LineBreak,4878498,371,189)
{
Caption="mac"
Type=1
link(Data,15247552:Var2,[])
Primary=[1114409,126,-119]
}
Add(MultiElement,9638973,420,140)
{
link(onEvent1,6943233:doString,[])
link(Data1,13295836:Text,[])
}
BEGIN_SDK
Add(EditMulti,7547278,357,154)
{
EventCount=1
WorkCount=1
DataCount=1
VarCount=2
Width=307
Height=102
link(doWork1,16237685:doCharset,[(371,160)(371,188)])
link(Var1,2273766:Value,[(363,235)(587,235)])
link(Var2,13492699:Value,[(370,242)(440,242)])
}
Add(Charset,16237685,385,182)
{
Type=5
link(onCharset,13492699:doValue,[])
link(Text,7547278:Data1,[(391,168)(363,168)])
}
Add(Length,1009197,483,182)
{
link(onLength,11495113:doConvert,[])
}
Add(Convertor,11495113,532,182)
{
Mode=4
link(onResult,2273766:doValue,[])
}
Add(Memory,2273766,581,182)
{
link(onData,7547278:onEvent1,[(639,188)(639,160)])
}
Add(Memory,13492699,434,182)
{
link(onData,1009197:doLength,[])
}
END_SDK
Add(LineBreak,4464136,420,210)
{
Caption="rn"
Type=1
link(Data,9638973:Var1,[])
Primary=[6619924,84,-126]
}
Add(LineBreak,7475206,427,189)
{
Caption="rn"
Type=1
link(Data,9638973:Var2,[])
Primary=[11732322,84,-91]
}
Add(MultiElement,8450259,553,140)
{
link(onEvent1,7024098:doWork1,[])
link(Data1,16717631:Text,[])
}
BEGIN_SDK
Add(EditMulti,5751878,427,77)
{
EventCount=1
WorkCount=1
DataCount=1
VarCount=2
Width=209
Height=102
link(doWork1,16120734:doLength,[(441,83)(441,111)])
link(Var1,13840115:Value,[(433,158)(573,158)])
link(Var2,3156629:Var2,[])
}
Add(Length,16120734,455,105)
{
link(onLength,5711335:doConvert,[])
link(Str,3156629:Var3,[(461,91)])
}
Add(Convertor,5711335,511,105)
{
Mode=4
link(onResult,13840115:doValue,[])
}
Add(Memory,13840115,567,105)
{
link(onData,5751878:onEvent1,[(617,111)(617,83)])
}
Add(GetDataEx,3156629,434,86)
{
Angle=3
link(Data,5751878:Data1,[(433,91)])
}
END_SDK
Add(FormatStr,9360037,665,140)
{
DataCount=4
Mask="0%10%2%30%4"
link(onFString,13869112:doWork2,[])
link(Str1,9265899:getVar,[])
link(Str2,11957270:getVar,[])
link(Str3,7024098:Var1,[(685,128)(650,128)(650,184)(615,184)])
link(Str4,13187629:Var3,[(692,124)])
}
Add(MultiElement,7024098,609,140)
{
link(onEvent1,9360037:doString,[])
link(Data1,13187629:Var2,[])
}
BEGIN_SDK
Add(EditMulti,11557666,21,21)
{
EventCount=1
WorkCount=1
DataCount=1
VarCount=1
Width=202
Height=102
link(doWork1,1747265:doLength,[(31,27)(31,48)])
link(Var1,3272150:Value,[(27,99)(160,99)])
}
Add(Length,1747265,42,42)
{
link(onLength,8532702:doConvert,[])
link(Str,11557666:Data1,[(48,32)(27,32)])
}
Add(Convertor,8532702,98,42)
{
Mode=4
link(onResult,3272150:doValue,[])
}
Add(Memory,3272150,154,42)
{
link(onData,11557666:onEvent1,[(204,48)(204,27)])
}
END_SDK
Add(LineBreak,1359605,476,189)
{
Caption="mesp"
Type=1
link(Data,6943233:FString,[])
Primary=[6409461,133,-91]
}
Add(GetDataEx,13187629,609,119)
{
link(Data,6409461:Var,[])
}
Add(Hub,10172486,266,140)
{
link(onEvent1,10185401:doWork1,[])
link(onEvent2,8234585:doString,[(294,153)(294,272)])
}
Add(HubEx,13869112,714,140)
{
link(onEvent,15472385:doSend,[])
}
Add(FormatStr,8234585,308,266)
{
DataCount=0
Mask="2000"
Point(FString)
link(onFString,7459707:doLength,[])
}
Add(LineBreakEx,717443,553,210)
{
Caption="as"
Type=3
link(_Data,8450259:Var1,[])
}
Add(LineBreakEx,9265899,665,77)
{
Caption="as"
Type=2
}
Add(LineBreakEx,1156819,476,210)
{
Caption="as"
Type=2
}
Add(LineBreakEx,14214099,560,189)
{
Caption="as2"
Type=3
link(_Data,8450259:Var2,[])
}
Add(LineBreakEx,11957270,672,98)
{
Caption="as2"
Type=2
}
Add(LineBreakEx,2634166,483,231)
{
Caption="as2"
Type=2
}
Add(Length,7459707,364,266)
{
link(onLength,14626954:doConvert,[])
}
Add(Convertor,14626954,420,266)
{
Mode=4
link(onResult,216956:doString,[])
}
Add(FormatStr,216956,476,266)
{
DataCount=4
Mask="0%10%2%30%4"
link(onFString,4741104:doWork2,[])
link(Str1,1156819:getVar,[])
link(Str2,2634166:getVar,[])
link(Str4,8234585:FString,[(503,253)(522,253)(522,315)(314,315)])
}
Add(Button,15773344,210,469)
{
Left=5
Top=214
Width=143
Caption="send key"
link(onClick,698155:doWork1,[])
}
Add(Edit,3933729,315,399)
{
Left=5
Top=164
Width=300
Text="KEY_MUTE"
}
Add(FormatStr,14895146,378,469)
{
Mask="000%10%2"
Point(FString)
link(onFString,9446063:doWork1,[])
link(Str1,15852953:Var,[])
link(Str2,16297212:Var,[])
}
Add(MultiElement,698155,315,469)
{
link(onEvent1,14895146:doString,[])
link(Data1,3933729:Text,[])
}
BEGIN_SDK
Add(EditMulti,5433468,357,154)
{
EventCount=1
WorkCount=1
DataCount=1
VarCount=2
Width=307
Height=102
link(doWork1,10980690:doCharset,[(371,160)(371,188)])
link(Var1,15653338:Value,[(363,235)(587,235)])
link(Var2,7594070:Value,[(370,243)(440,243)])
}
Add(Charset,10980690,385,182)
{
Type=5
link(onCharset,7594070:doValue,[])
link(Text,5433468:Data1,[(391,168)(363,168)])
}
Add(Length,2652566,483,182)
{
link(onLength,6810446:doConvert,[])
}
Add(Convertor,6810446,532,182)
{
Mode=4
link(onResult,15653338:doValue,[])
}
Add(Memory,15653338,581,182)
{
link(onData,5433468:onEvent1,[(639,188)(639,160)])
}
Add(Memory,7594070,434,182)
{
link(onData,2652566:doLength,[])
}
END_SDK
Add(LineBreak,8243212,315,518)
{
Caption="key"
Type=1
link(Data,698155:Var1,[])
Primary=[15852953,63,-105]
}
Add(LineBreak,16339252,322,539)
{
Caption="key"
Type=1
link(Data,698155:Var2,[])
Primary=[16297212,63,-105]
}
Add(FormatStr,9400287,567,469)
{
DataCount=4
Mask="0%10%2%30%4"
link(onFString,4741104:doWork3,[(718,475)])
link(Str1,1446599:Var,[])
link(Str2,5399432:Var,[])
link(Str3,8416672:Var,[])
link(Str4,13027860:Var,[])
}
Add(MultiElement,7137561,504,469)
{
link(onEvent1,9400287:doString,[])
link(Data1,12406833:Var,[])
}
BEGIN_SDK
Add(EditMulti,800744,21,21)
{
EventCount=1
WorkCount=1
DataCount=1
VarCount=2
Width=202
Height=102
link(doWork1,6602836:doLength,[(31,27)(31,48)])
link(Var1,900354:Value,[(27,99)(160,99)])
link(Var2,3295515:Var2,[])
}
Add(Length,6602836,42,42)
{
link(onLength,1918483:doConvert,[])
link(Str,3295515:Var3,[(48,32)])
}
Add(Convertor,1918483,98,42)
{
Mode=4
link(onResult,900354:doValue,[])
}
Add(Memory,900354,154,42)
{
link(onData,800744:onEvent1,[(204,48)(204,27)])
}
Add(GetDataEx,3295515,28,27)
{
Angle=3
link(Data,800744:Data1,[(27,31)])
}
END_SDK
Add(MultiElement,9446063,441,469)
{
link(onEvent1,7137561:doWork1,[])
link(Data1,14454047:Text,[])
}
BEGIN_SDK
Add(EditMulti,11346645,427,77)
{
EventCount=1
WorkCount=1
DataCount=1
VarCount=2
Width=209
Height=102
link(doWork1,10617660:doLength,[(441,83)(441,111)])
link(Var1,9948092:Value,[(433,158)(573,158)])
link(Var2,16706428:Var2,[])
}
Add(Length,10617660,455,105)
{
link(onLength,14684676:doConvert,[])
link(Str,16706428:Var3,[(461,91)])
}
Add(Convertor,14684676,511,105)
{
Mode=4
link(onResult,9948092:doValue,[])
}
Add(Memory,9948092,567,105)
{
link(onData,11346645:onEvent1,[(617,111)(617,83)])
}
Add(GetDataEx,16706428,434,86)
{
Angle=3
link(Data,11346645:Data1,[(433,91)])
}
END_SDK
Add(LineBreak,586915,441,518)
{
Caption="tvas"
Type=1
link(Data,9446063:Var1,[])
Primary=[1446599,126,-147]
}
Add(LineBreak,15816413,448,539)
{
Caption="tvas"
Type=1
link(Data,9446063:Var2,[])
Primary=[5399432,126,-147]
}
Add(LineBreak,7316005,378,518)
{
Caption="mesp"
Type=1
link(Data,14895146:FString,[])
Primary=[12406833,126,-84]
}
Add(LineBreak,7516199,504,518)
{
Caption="+mesp"
Type=1
link(Data,7137561:Var1,[])
Primary=[8416672,77,-105]
}
Add(LineBreak,181589,511,539)
{
Caption="+mesp"
Type=1
link(Data,7137561:Var2,[])
Primary=[13027860,77,-105]
}
Add(HubEx,4741104,714,266)
{
Angle=3
link(onEvent,13869112:doWork3,[])
}
Add(LED,3083427,896,168)
{
Left=279
Top=2
}
Add(Edit,8600175,833,63)
{
Left=5
Top=5
Width=202
Text="192.168.2.68"
}
Add(Button,726238,777,105)
{
Left=215
Top=5
Caption="connect"
link(onClick,15472385:doOpen,[(821,111)(821,132)])
}
карма: 0

0
Ответов: 1343
Рейтинг: 31
#6: 2015-06-26 20:12:02 ЛС | профиль | цитата
GanjaKyp писал(а):
а chr(0x00) в FormatStr будет 0 ?


я так полагаю если в выше написано посте было упомянуто о том что 100, выходит количество знакомест не имеет значения, значит можно ставить просто
карма: 2

0
Ответов: 578
Рейтинг: 14
#7: 2015-06-26 20:20:21 ЛС | профиль | цитата
пробовал и с , результат тот же
карма: 0

0
Ответов: 4631
Рейтинг: 749
#8: 2015-06-27 11:03:03 ЛС | профиль | цитата
Тут, оказывается, такая штука, что символы с кодом 0 и 1 FormatStr внутри использует в своих целях.
Можно попробовать использовать вместо , например, 254, а вместо 1 - 255 (то-есть, любые символы, которые не встретятся в исходной строке, особенно, обратить внимание на полученное значение длин строк). Затем поставить два Replace (254 > и 255 > 1) на выходе с FormatStr.
Или использовать StrCat/StrCatDelim.
карма: 26

0
Ответов: 578
Рейтинг: 14
#9: 2015-06-27 14:06:20 ЛС | профиль | цитата
соединил все через strcat, но не работает, можете посмотреть по перл коду все совпадает
code_35922.txt
карма: 0

0
файлы: 1code_35922.txt [16.7KB] [756]
Ответов: 4631
Рейтинг: 749
#10: 2015-06-27 15:35:59 ЛС | профиль | цитата
Выходит, это проблема в HiAsm - нельзя в строковых свойствах указывать \0.

Кто-нибудь в курсе, зачем кодогенератор значения строковых свойств приводит к PChar() в результирующем коде?
И ещё #0 в конце добавляет? Что, нельзя просто присваивать как строку?


#pas
with StrCat_1DAED68 do begin
_prop_Str1 := PChar('ABC'#0);
_prop_Str2 := PChar(#0#0);
end;
карма: 26

0
Ответов: 9906
Рейтинг: 351
#11: 2015-06-27 18:35:40 ЛС | профиль | цитата
Я в курсе.

Это во первых, неуклонная борьба с синтаксисом Дельфи. Он упорно не хочет отличать строку, длиной в один символ - от символа.
Во вторых, Dilma решил когда-то, что нет ничего лучше, чем хранить строку в ресурсах - именно с таким атрибутом. А это AsciiZ - по определению

Правильнее было бы - хранить так же, как и стрим. Но, моей харизмы -- не хватило.
Управление файлом ресурса - вообще недоделанный вопрос.
карма: 9

0
Ответов: 578
Рейтинг: 14
#12: 2015-06-27 19:37:49 ЛС | профиль | цитата
проблема именно в кодогенераторе delphi или в самом Hiasm
карма: 0

0
Ответов: 1821
Рейтинг: 168
#13: 2015-06-27 22:14:51 ЛС | профиль | цитата
Попробуйте ещё вот такой вариант: code_35924.txt
карма: 5

0
файлы: 1code_35924.txt [11.8KB] [905]
Ответов: 655
Рейтинг: 18
#14: 2015-06-27 22:46:15 ЛС | профиль | цитата
GanjaKyp, у нас тут есть компонент FBSL на форуме (скриптовый язык) так вот на его офф стайте есть примеры как выполнять код питона....

FBSL компонент дружит с hiasm....и дружит с питоном...улавливаешь?
карма: 0

0
Ответов: 1821
Рейтинг: 168
#15: 2015-06-27 23:13:23 ЛС | профиль | цитата
Gunnman, у топикстартера Perl, вроде
карма: 5

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)