powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Помогите с функцией AnsiToNative из C++Builder'a
5 сообщений из 5, страница 1 из 1
Помогите с функцией AnsiToNative из C++Builder'a
    #32758238
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Написал программу на C++Builder, которая делает некоторые проверки и выдает отчет в виде текстового файла. Файл получается (естественно) в кодировке Win.
На компьютерах пользователей, кому отправляют отчет, может стоять и "чистая" DOS. Кроме того, надо расчитывать на наличие бабулек, умеющих нажимать только F3 в Нортоне и приходящих в шок от самой необходимости работать не компьютере
Теперь собственно вопрос:
В хелпе к C++Builder нашел, что подобные преобразования (Win->DOS) можно выполнить функцией AnsiToNative, но примера ее использования там нет. А сам я не "догоняю" с параметрами, которые надо ей передать
Помогите, плз!!!
...
Рейтинг: 0 / 0
Помогите с функцией AnsiToNative из C++Builder'a
    #32758267
_Sania
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Лучше использовать CharToOem:

HELP
The CharToOem function translates a string into the OEM-defined character set. (OEM stands for original equipment manufacturer.) This function supersedes the AnsiToOem function.

BOOL CharToOem(
LPCTSTR lpszSrc, // pointer to string to translate
LPSTR lpszDst // pointer to translated string
);


Parameters lpszSrc
Pointer to the null-terminated string to translate.
lpszDst

Pointer to the buffer for the translated string. If the CharToOem function is being used as an ANSI function, the string can be translated in place by setting the lpszDst parameter to the same address as the lpszSrc parameter. This cannot be done if CharToOem is being used as a wide-character function.

Return Values

The return value is always nonzero.


Можно использовать и AnsiString, т.е. например есть строка src и ее надо перегнать в cp866:

Код: plaintext
1.
2.
AnsiString dest = src; // Для выделения буфера, можно и по-другому сделать
CharToOem(src.c_str(), dest.c_str());

Ну и конечно консоль должна быть настроена на cp866.
...
Рейтинг: 0 / 0
Помогите с функцией AnsiToNative из C++Builder'a
    #32758274
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_SaniaЛучше использовать CharToOem:...
Я конечно дико извиняюсь, но разве CharToOem не из VC++? Это я тоже прочитал в MSDN'e...

А я пишу на Билдере, там такие штучки не описаны...
Там написано следующее:
Borland C++Builder Help
AnsiToNative

Converts an AnsiString from the ANSI character set to the character set associated with a given locale.

extern PACKAGE char * __fastcall AnsiToNative(void * Locale, const AnsiString AnsiStr, char * NativeStr, int MaxLen);

Description

Call AnsiToNative to convert a string represented in the ANSI character set (used internally by Windows) to the character set associated with the database locale specified by the Locale parameter. The resulting string is copied into the buffer pointed to by the NativeStr parameter. Use the MaxLen parameter to specify the size of this buffer. If the buffer is too small to contain all characters in the converted version of AnsiStr, the returned value is truncated. AnsiToNative returns a pointer to NativeStr.

Use AnsiToNative to convert strings typed by the user into the character set used by a database table.

Вот меня и интересует пример использования этой функции, особенно в части задания void *Locale...
...
Рейтинг: 0 / 0
Помогите с функцией AnsiToNative из C++Builder'a
    #32758288
_Sania
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можешь не извиняться , это из WinApi, и использовать ее можно и BCB.

OemToChar и OemToCharBuf использовать проще, к томуже OemToCharBuf может перегнать сразу весь файл (ну если он в пределах пары мегабайт) и не надо с отдельными строками парится.
...
Рейтинг: 0 / 0
Помогите с функцией AnsiToNative из C++Builder'a
    #32758348
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_SaniaМожешь не извиняться , это из WinApi, и использовать ее можно и BCB.

OemToChar и OemToCharBuf использовать проще, к томуже OemToCharBuf может перегнать сразу весь файл (ну если он в пределах пары мегабайт) и не надо с отдельными строками парится.
Thanks! It's cool!!!
Однако, "если звезды зажигают, значит это кому-нибудь нужно"...
Поэтому, все-таки, хотелось бы услышать ответ по сабж... Так, для увеличения образованности
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Помогите с функцией AnsiToNative из C++Builder'a
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]