Форум: "WinAPI";
Текущий архив: 2003.12.26;
Скачать: [xml.tar.bz2];
Вниз
не работает oemtochar() Найти похожие ветки
← →
karburator (2003-10-29 11:23) [0]Подскажите почему DOS текст не конвертируется функцией oemtochar(),
или лучше самому писать конвертер ascii -> ansi?
мой код:
//================================================
//var pc1, pc2: PChar; //
begin
pc1:= "zdxfdsfgsh 1234567890 ЄапЄ®§пЎал";
oemtochar(pc1, pc2);
showmessage( "#"+strpas(pc2)+"#"+ inttostr(length(pc2)) );
end;
//================================================
PS: Если pc1 и pc2 объявлены в процедуре вызывающей ф-ю oemtochar(), то вылезает ошибка, если pc1 и pc2 глобальные переменные, то pc2 = ""
← →
MBo (2003-10-29 11:26) [1]А кто будет память выделять?
В FAQ, кажется, пример oemtochar имеется.
← →
Anatoly Podgoretsky (2003-10-29 11:31) [2]Пушкин вестимо
← →
karburator (2003-10-29 12:32) [3]АГА! :)
← →
karburator (2003-10-30 05:42) [4]Ну раз OemToChar не определяет размер переменнной pc2, то так и быть, я сам определю. Вот только для PChar-a не нашёл ф-ю для задания его размера пришлось использовать динамич. массив Char-ов. Не просветите ли меня, уважаемые мастера, как можно определить размер PChar-а без определения его содержимого (что-то типа setlength).
// так работает, но некрасиво #:-(
var
pc1: pchar;
pc2: array of char;
begin
pc1:= "zdxfdsfgsh 1234567890 абвэюя";
setlength(pc2, 33);
OemToChar(pc1, pchar(pc2));
showmessage("#"+strpas(pchar(pc2))+"#"+ inttostr(length(pc2)));
end;
← →
MBo (2003-10-30 06:31) [5]GetMem, например
← →
esVer (2003-10-30 10:10) [6]Рекомендуется "забить" на все эти OemToChar, AnsiUpperCase и пр. "прелести" Windows и взять у Анатолия Подгорецкого на homepage модуль перекодировки. Насколько понимаю, большинство в этой конференции работает и с русским текстом, а посему результат использования ф-ций Windows часто может быть далек от ожидаемого.
← →
Игорь Шевченко (2003-10-30 10:25) [7]esVer © (30.10.03 10:10)
Забивать не рекомендуется
← →
esVer (2003-10-30 10:46) [8]Игорь, а обосновать можно?
← →
Игорь Шевченко (2003-10-30 12:48) [9]esVer © (30.10.03 10:46)
Конечно можно. Зачем изобретать велосипед, если он уже встроен в систему, причем с нужным количество колес.
> большинство в этой конференции работает и с русским текстом,
> а посему результат использования ф-ций Windows часто может
> быть далек от ожидаемого.
У каждой функции есть в Win32.hlp описание, где написано, что она делает. Для того, чтобы писать подобные заявления, нужно прочитать это описание, понять, что можно ожидать от функции, и не желать несбыточного. Функции эти работают в ПОЛНОМ соответствии со своими описаниями.
← →
esVer (2003-10-30 13:29) [10]Ок. Будем считать, что я употребил некорректные формулировки.
Однако, если мне нужно работать с русским текстом как с русским, то предпочтительно не зависить от региональных настроек и "национальности" Windows.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2003.12.26;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.006 c