Такая тема. Использую MSCOM32 для работы с COM портами. На оборудование надо отправить команду: f8 55 ce 01 00 90 90 00
Не подозревая подвоха перевожу hex в dec, формирую строку:
стр = Символ(248)+Символ(85)+Символ(206)+Символ(1)+Символ(0)+Символ(160)+Символ(160)+Символ(0));
На оборудовании получаю: 6f 55 49 01 00 a0 a0 00
Пишу такой код:
Для пе=1 по 255 Цикл
КомПорт.Output = Символ(пе);
КонецЦикла;
На оборудовании получаю:
Т.е. первые 127 символов нормально, а дальше как повезет. Тема то старая, но сам решить не могу. Пробовал отдавать массив - выдает ошибку. Подскажите куда можно копнуть?
Всем спасибо. Решил проблему через вызов VBScript. Вот код:
Функция ВернутьСтр(Стр)
sc = Новый COMОбъект("MSScriptControl.ScriptControl");
sc.language="VBscript";
Команда = "";
Для н = 1 По СтрДлина(Стр) Цикл
Команда = Команда + sc.eval("Chr("""+КодСимвола(Стр, н)+""")");
КонецЦикла;
Возврат Команда;
КонецФункции
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший