programing:cpp_builder:cpp_builder-lcmapstring
差分
このページの2つのバージョン間の差分を表示します。
次のリビジョン | 前のリビジョン最新のリビジョン両方とも次のリビジョン | ||
programing:cpp_builder:cpp_builder-lcmapstring [2020/02/04 17:03] – 作成 yoko | programing:cpp_builder:cpp_builder-lcmapstring [2020/02/04 17:17] – [コーディング例] yoko | ||
---|---|---|---|
行 1: | 行 1: | ||
C++Builder 全角→半角 変換 | C++Builder 全角→半角 変換 | ||
========================= | ========================= | ||
- | Unicodeの全角文字を半角文字に変換するようにしたので備忘録を残す。 | + | Unicodeの全角文字を半角文字に変換するようにしたので備忘録を残す。 |
- | Windows APIの(`LCMapString`)関数を使って変換する。 | + | |
コーディング例 | コーディング例 | ||
------------- | ------------- | ||
+ | Windows APIの `LCMapString` 関数を使って変換する。 | ||
+ | |||
+ | <code c> | ||
+ | Char buff[130]; | ||
+ | PChar s: | ||
+ | | ||
+ | String text = L" | ||
+ | int len = text.Length(); | ||
+ | | ||
+ | // DWORD flags = LCMAP_FULLWIDTH; | ||
+ | DWORD flags = LCMAP_HALFWIDTH; | ||
+ | // DWORD flags = LCMAP_HIRAGANA; | ||
+ | // DWORD flags = LCMAP_KATAKANA; | ||
+ | |||
+ | DWORD flags = LCMAP_HALFWIDTH; | ||
+ | const int size = len + 1; | ||
+ | |||
+ | if (size < 128) { // バッファに入る時だけ変換する | ||
+ | s = buff; | ||
+ | LCMapString(GetUserDefaultLCID(), | ||
+ | flags, | ||
+ | text.c_str(), | ||
+ | size, | ||
+ | (LPWSTR)s, | ||
+ | size); | ||
+ | s[len] = 0; | ||
+ | } | ||
+ | else { | ||
+ | s = text.c_str(); | ||
+ | } | ||
+ | |||
+ | ShowMessage(s); | ||
+ | </ | ||
+ | |||
行 12: | 行 45: | ||
1. [[https:// | 1. [[https:// | ||
+ | 2. [[http:// | ||
programing/cpp_builder/cpp_builder-lcmapstring.txt · 最終更新: 2020/02/04 17:18 by yoko