Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.007 c
14-86531
IronHawk
2003-11-27 16:10
2003.12.26
Определение слова


1-86445
MVVD
2003-12-13 12:29
2003.12.26
Не работает переключение форма/модуль


1-86360
Stant
2003-12-11 23:42
2003.12.26
Как показать многострочный HINT


14-86561
Rouse_
2003-11-27 00:53
2003.12.26
Очепятки...


6-86485
Vinter
2003-10-29 10:32
2003.12.26
как к IdHttp подключить ProgressBar





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский