AnsiToOem #528957


#0 by SlavikSOFT2000
Пробема: Есть строка в кодировке 1С8 UTF нужно ее превратить в строку OEM В 77 была функция AnsiToOem а в 8 ее нет есть какие-нибуть идеи? (Только  без работы с диском)
#1 by oleg_km
других идей не нашел или реализовать во внешней обработке или COM-DLL. Только AnsiToOem не преобразует UTF в OEM, она преобразует ANSI в OEM
#2 by SlavikSOFT2000
а не хочется ужастно
#3 by H A D G E H O G s
Зачем?
#4 by Salvador Limones
Я бы предложил примерно так:
#5 by Дикообразко
Встроенные функции языка (Script functions) Символ (Char) Синтаксис: Символ(<Код символа>) Параметры: <Код символа> (обязательный) Тип: Число. Код получаемого символа. Код задается в соответствии с кодировкой Unicode. Возвращаемое значение: Тип: Строка. Результирующий символ. Описание: Преобразует код символа в строку, содержащую символ. Пример: Встроенные функции языка (Script functions) КодСимвола (CharCode) Синтаксис: КодСимвола(<Строка>, <Номер символа>) Параметры: <Номер символа> (необязательный) Тип: Число. Номер символа в строке, код которого необходимо получить. Нумерация символов в строке начинается с 1. Значение по умолчанию: 1 Возвращаемое значение: Тип: Число. Код переданного символа. Код возвращается в соответствии с кодировкой Unicode. Описание: Получает код символа, расположенного в переданной строке в позиции с указанным номером. Пример: КодПервогоСимволаФамилии = КодСимвола(Сотрудник.Фамилия);
#6 by Дикообразко
и что будет?
#7 by H A D G E H O G s
Зависит от того, что нужно автору. Если просто строку OEM в 1С поиметь - то ничего.
#8 by SlavikSOFT2000
с записью на диск я и сам могу в теме ж указано - "есть какие-нибуть идеи? (Только  без работы с диском)"
#9 by H A D G E H O G s
Еще раз ЗАЧЕМ
#10 by Salvador Limones
А, точняк, не заметил.
#11 by Дикообразко
ну оно же не должно перекодировать, абракадабра же получится?
#12 by SlavikSOFT2000
чтобы дальше передать через драйвер , а он токо оем рулит
#13 by H A D G E H O G s
#14 by SlavikSOFT2000
- драйвер напрямую работает с ком портом строки будут разные так как в них будет наименование товара
#15 by H A D G E H O G s
Смотрим
#16 by Дикообразко
'/******************************************/ '/*   Перекодировка символа                */ '/******************************************/
#17 by SlavikSOFT2000
команд будет много - не хочется диск напрягать
#18 by H A D G E H O G s
Писец Ansi<>utf Даже рядом не лежало
#19 by H A D G E H O G s
В 1C - utf - 2 байта на символ ANSI - Win1251 - 1 байт на символ
#20 by SlavikSOFT2000
- спс
#21 by Дикообразко
что то мне не верится, надо проверить
#25 by H A D G E H O G s
#26 by Дикообразко
да ну баян же страшный... на то он и юникод, что бы с кучей таблицей кодировок не парится, поэтому 2 байта 65 535 возможных символов вместо 255 в оем и анси
#27 by H A D G E H O G s
Аутор говорит про ansitooem бекоуз в 7.7 не было utf, а было ansi Это - восьмерка! (Это - спарта!) Тут нужен аналог widechartomultibyte
#28 by Дикообразко
ты гонишь... нафиг тебе вообще utf ?
#29 by H A D G E H O G s
Итого: Либо 2) Конверъебиться с Символ 3) Вызов АПИ widechartomultibyte
#30 by H A D G E H O G s
Автор формирует текст в 1Сv8. Он изначально будет в utf
#31 by Дикообразко
ога... спс, уже понял
#32 by SlavikSOFT2000
Таки не работает к сожалению Потому что код символа "А" - 1040
#33 by Дикообразко
тогда это не ANSI
#34 by H A D G E H O G s
Внезапно!
#35 by SlavikSOFT2000
ну 1С8 всетаки блин в УТФ
#36 by SlavikSOFT2000
нужна тогда функция UTFtoOEM :-)
#37 by Дикообразко
посмотри там народ извращался, может что найдешь полезного
#38 by Fram
через файл. только не каждую фразу, а все фразы одним файлом. немного больше кода, зато быстро
#39 by SlavikSOFT2000
проблема в том что при чтении этого файла 1С опять получает строку в UTF а код имеет вид: Как передать тогда ТекстКоманды в оем?
#40 by Fram
кусок кода выложи
#41 by Fram
+ в смысле побольше кусок
#42 by Fram
и пример в каком случае печатает правильно? что напечатает, если сделать, например , так:
#43 by H A D G E H O G s
Счаст все будет так,как ты захочешь.
#45 by H A D G E H O G s
#46 by H A D G E H O G s
Вот, как то так
#47 by H A D G E H O G s
Смысл - в Строку 1С (utf) - записать символы. Каждый символ - это набор 2-х байт. 1 байт - это байт первого OEM символа исходной строки 2 байт - это байт второго OEM символа исходной строки
#48 by H A D G E H O G s
Тоесть, 2 символа исходной команды помещаются в 1 символ строки 1С
#49 by SlavikSOFT2000
проверим щас :-)
#50 by SlavikSOFT2000
так не пройдет к сожалению
#51 by SlavikSOFT2000
не прошло тоесть
#52 by Fram
а что на выдает?
#53 by H A D G E H O G s
Почему?
#54 by Fram
ну такая команда вряд ли есть конечно :) . Ну написал бы хотя бы что работает
#55 by SlavikSOFT2000
-символы принимает - говорит Ок как вариант возможно компонента реализована паршиво - ФП не может такой текст вообще отобразить а вот например на букву "С" руск. не реагирует и все
#56 by H A D G E H O G s
ВК-шки нормально конвертят нормальный uft в ansi Самостоятельно. Дельфи точно это делает.
#57 by Fram
я так и не понял.. из 1С хоть какая нибудь команда срабатывает?
#58 by SlavikSOFT
команды не в руск раскладке а в англ - соответственно проблем нет
#59 by SlavikSOFT
а вот наименование товаров в русс - проблемы есть
#60 by Fram
а вот такое проходит? "агббЄЁ©"
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С