新石器Wiki

近年はシリコン(石)から進化した便利なもので溢れる時代。そんな気になった事や試した事など記す。

ユーザ用ツール

サイト用ツール


programing:cpp_builder:cpp_builder-lcmapstring


差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
programing:cpp_builder:cpp_builder-lcmapstring [2020/02/04 17:11] yokoprograming:cpp_builder:cpp_builder-lcmapstring [2026/07/28 13:16] (現在) – 外部編集 127.0.0.1
行 1: 行 1:
-C++Builder 全角→半角 変換 +====== C++Builder 全角→半角 変換 ======
-=========================+
 Unicodeの全角文字を半角文字に変換するようにしたので備忘録を残す。 Unicodeの全角文字を半角文字に変換するようにしたので備忘録を残す。
  
-コーディング例 +===== コーディング例 =====
--------------+
 Windows APIの `LCMapString` 関数を使って変換する。 Windows APIの `LCMapString` 関数を使って変換する。
  
 <code c> <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;     const int size = len + 1;
-        if (size < 128) { // バッファに入る時だけ変換する +    if (size < 128) {                   // バッファに入る時だけ変換する 
-            s = _msgbuff+        s = buff
-            LCMapString(GetUserDefaultLCID(),+        LCMapString(GetUserDefaultLCID(),
                 flags,                 flags,
                 text.c_str(),                 text.c_str(),
行 20: 行 26:
                 (LPWSTR)s, // 変換した文字列の格納先                 (LPWSTR)s, // 変換した文字列の格納先
                 size);                 size);
-            s[len] = 0; +        s[len] = 0; 
-        +    
-        else { +    else { 
-            s = text.c_str(); +        s = text.c_str();               // バッファに入らないので変換しない 
-        }+    }
   
-        ShowMessage(s); /* for debug */+    ShowMessage(s); /* for debug */
 </code> </code>
  
  
  
-参考 +===== 参考 =====
-----+
  
-1. [[https://www.gesource.jp/programming/bcb/39.html|全角・半角・ひらがな・カタカナの変換]] +  - [[https://www.gesource.jp/programming/bcb/39.html|全角・半角・ひらがな・カタカナの変換]] 
-2. [[http://www1.plala.or.jp/yuuto/plalaboard/message/files/htoz.html]]+  [[http://www1.plala.or.jp/yuuto/plalaboard/message/files/htoz.html]]
  
programing/cpp_builder/cpp_builder-lcmapstring.1580803896.txt.gz · 最終更新: by yoko