24.01.2007, 15:27 | #1 |
Участник
|
TextBuffer и кодировка...?
Добрый день!
Используя TextBuffer пытаюсь загрузить содержимое файла для последующей загрузки в Memo. Проблема в том, что русские буквы превращаются в кракозяблики, предполагаю что наверное нужно указать кодировку или что… Подскажите. Спасибо. |
|
24.01.2007, 15:39 | #2 |
MCT
|
Привет, если надо из DOS в Windows то это поможет
static str oemToChar(str _text) { DLL dll = new DLL("user32.dll"); DLLFunction dllFunction = new DLLFunction(dll, "OemToCharA"); Binary result = new Binary(strlen(_text) + 1); ; dllFunction.returns(ExtTypes:Word); dllFunction.arg(ExtTypes::String, ExtTypes::Pointer); dllFunction.call(_text, result); return result.string(0); } |
|
24.01.2007, 15:47 | #3 |
Участник
|
X++: void LoadKeyboardLayout() { dll dll = new dll("user32"); dllFunction dllFunction = new dllFunction(dll, "LoadKeyboardLayoutA"); #define.KLF_ACTIVATE(1) ; dllFunction.arg(ExtTypes::String, ExtTypes:: DWord); dllFunction.returns(ExtTypes:: DWord); dllFunction.call("00000419", #KLF_ACTIVATE); } Цитата:
AndyD, попутный вопрос (в плане повышения общей xpp-грамотности)
Это метод что делает? Для чего? Заранее благодарю за ответ. AndyD 14.06.2006 17:56 Активирует русскую раскладку клавиатуры. Если с помощью toClipboard() копировать при активной английской в WIN2000+, то произойдет ошибка конвертации и вместо русских букв будут крякозяблы. Этот эффект можно наблюдать при копировании из Axapta'ы кириллицы (код Recoilme в этом же топике). На самом деле есть несколько путей решения этой проблемы - копировать в UNICODE, при вставке в Excel указывать тип вставляемых данных (при помощи метода PasteSpecial на WorkSheet). |
|
24.01.2007, 17:20 | #4 |
Участник
|
не помогло...
|
|
24.01.2007, 17:32 | #5 |
Участник
|
сорри, я промазал - какая кодировка в исходной файле?
|
|
24.01.2007, 17:55 | #6 |
Участник
|
Даже не могу понять, вроде Windows.
Решил выложить сам файлик, он в архиве, дабы кодировка эта не слетела и выложил код которым пытаюсь загрузить его содержимое. X++: static void Job1(Args _args) { TextBuffer dataFile; dataFile = new TextBuffer(); dataFile.fromFile("c:\\test.txt"); info(dataFile.getText()); } |
|
24.01.2007, 17:59 | #7 |
Участник
|
Вообще-то он в UTF-8
После чтения в TextBuffer воспользуйтесь этим записать файл в UTF-кодировке классом
__________________
Axapta v.3.0 sp5 kr2 |
|
|
За это сообщение автора поблагодарили: mmm (1). |
24.01.2007, 18:13 | #8 |
Участник
|
А как программно определить в какой он кодировке?
|
|