Вверх ↑
Этот топик читают: Гость
Ответов: 655
Рейтинг: 18
#16: 2015-06-27 23:45:07 ЛС | профиль | цитата
sаmakacd, ну тогда вот скрипт для питона, который дружит с FBSL который дружит с Hiasm

https://www.indigodomo.com/library/234/
карма: 0

0
Ответов: 578
Рейтинг: 14
#17: 2015-06-28 07:07:30 ЛС | профиль | цитата
sаmakacd, тоже не работает вообще изначально я хотел только попробовать в delphi, а потом переделать в пакете android, это возможно в нем? в частности не нашел как конвертировать в char
карма: 0

0
Ответов: 1821
Рейтинг: 168
#18: 2015-06-28 10:02:04 ЛС | профиль | цитата
GanjaKyp, тогда ХЗ, там по идее нулевой символ уже прописывается. Возможно, обрезается как-то при конвертации в PChar.
На счёт пакета Android, то можно. Converter - IntToHex и HextToStr либо наоборот
------------ Дoбавленo в 10.02:
Единственное - надо написать енкриптор/декриптор в Base64 на IC
карма: 5

0
Ответов: 4631
Рейтинг: 749
#19: 2015-06-28 10:57:16 ЛС | профиль | цитата
Galkov писал(а):
Он упорно не хочет отличать строку, длиной в один символ - от символа
А чем это чревато для нас? Свойства все равно объявляются как string. И каким образом PChar помогает это исправить?
Galkov писал(а):
нет ничего лучше, чем хранить строку в ресурсах
Как я понимаю из этого


#pas
function StringToCode(const s:string):string;
var i:integer; intostr:bool;
begin
if Length(s) > 254 then begin
Result := 'PChar(LoadResData(''' + cgt.resAddStr(PChar(s)) + '''))';
exit;
end;
Result := 'PChar(';
intostr := false;
for i := 1 to Length(s) do
if ord(s[i])<32 then begin
if intostr then Result := Result + '''';
Result := Result + '#' + Int2Str(ord(s[i]));
intostr := false;
end else begin
if not intostr then Result := Result + '''';
if s[i]='''' then Result := Result + '''';
Result := Result + s[i];
intostr := true;
end;
if intostr then Result := Result + '''';
Result := Result + '#0)';
end;
строка длиной до 255 вообще в ресурсы не заносится. Какой тогда смысл в _prop_XXX := PChar('ABC'#0)?

Кто хочет поэкспериментировать - замените в CodeGen.dpr


#pas
function StringToCode(const s:string):string;
var i:integer; intostr:bool;
begin
if Length(s) > 254 then begin
Result := 'PChar(LoadResData(''' + cgt.resAddStr(PChar(s)) + '''))';
exit;
end;
//Result := 'PChar(';
Result := '';
intostr := false;
for i := 1 to Length(s) do
if ord(s[i])<32 then begin
if intostr then Result := Result + '''';
Result := Result + '#' + Int2Str(ord(s[i]));
intostr := false;
end else begin
if not intostr then Result := Result + '''';
if s[i]='''' then Result := Result + '''';
Result := Result + s[i];
intostr := true;
end;
if intostr then Result := Result + '''';
//Result := Result + '#0)';
if Result = '' then Result := '''''';
end;
и выполните make.bat Сообщите, если обнаружите ошибки в работе программ.
карма: 26

0
Ответов: 9906
Рейтинг: 351
#20: 2015-06-28 15:58:49 ЛС | профиль | цитата
И чего, это будет компилироваться, если строка длиной в один символ ???
Не должно бы...
И второе "чего": для "длинной" строки это все равно - что мертвому припарка.

Типа: "здесь читать, здесь не читать, здесь рыбу заворачивали"
карма: 9

0
Ответов: 4631
Рейтинг: 749
#21: 2015-06-28 20:37:41 ЛС | профиль | цитата
Galkov писал(а):
И чего, это будет компилироваться, если строка длиной в один символ ?
Компилируется.

Galkov писал(а):
для "длинной" строки это все равно - что мертвому припарка
Для задачи GanjaKyp - в самый раз.
карма: 26

0
Ответов: 655
Рейтинг: 18
#22: 2015-06-28 22:15:46 ЛС | профиль | цитата
Может я не совсем правильно понял насчет strformat и , но при использовании двойного слеша \0 результат strformat будет .

схема:
code_35926.txt
карма: 0

0
файлы: 1code_35926.txt [241B] [434]
Ответов: 16884
Рейтинг: 1239
#23: 2015-06-28 22:53:50 ЛС | профиль | цитата
Или формировать Hex-строку -> HexToStream
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 9906
Рейтинг: 351
#24: 2015-06-29 09:18:50 ЛС | профиль | цитата
Netspirit писал(а):
Компилируется

Хм... Странно. Видно, чего-то я подзабыл за эти многие годы. Хотя помню же - проблема была.
Не могу ничего вспомнить, потому что невозможно наморщить лоб ((с) Жванецкий)

Как говорится: если уж действительно так, то - почему бы и нет...
Хотя, лично мое мнение: половина решения бывает порой хуже, чем его отсутствие.
карма: 9

0
Ответов: 578
Рейтинг: 14
#25: 2015-06-30 13:17:40 ЛС | профиль | цитата
Netspirit, заменил эти строки, но все равно работать не хочет ТВ точно поддерживает управление, значит или протокол неправильный нашел или до такой степени руки кривые
карма: 0

0
Ответов: 4631
Рейтинг: 749
#26: 2015-06-30 13:30:06 ЛС | профиль | цитата
Можно разметисть тот perl-код на локальном сервере. Там же, где ты его брал, есть html-форма для запроса. Посмотреть, какую строку формирует скрипт и сравнить со своей - найдешь отличия.

Или можешь сформировать строку вручную в HEX-редакторе, затем послать её через TCP_Client. Посмотришь в чем ошибка.
карма: 26

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