LCMapString について

解決


ofZ  2008-04-27 00:44:17  No: 30589

LCMapString API を使った文字変換で、質問です。

LCMapString(LOCALE_USER_DEFAULT, LCMAP_FULLWIDTH, 〜
このようにしたとき、「\」1文字だけ、半角のままです。
WinXP SP1, WinNT4.0 で再現しました。

この、\ マークが変換されないという仕様(?)は、どこかに記載してありますか?
それとも、別のフラグと組み合わせればよいのかな?


Mr.XRAY  2008-04-27 04:11:37  No: 30590

\はパスの区切り文字のためではないかと思われます.
変換後に,\を全角の¥で置換する方法はどうですか?


ofZ  2008-04-27 07:10:27  No: 30591

> \はパスの区切り文字のためではないかと思われます.
そうなんです。
たまたまテストしたのが、別の関数のテスト用に指定したファイルのパスで、
\ が、変換されなかったので気がついたんです。

だから、そういった例外について記述したものがないかな?と。

> 変換後に,\を全角の¥で置換する方法はどうですか?
確かにこれを考えましたが、トータルな速度的にどんなもんかなと。
「自作の半角→全角関数」と「LCMapString  &  StringReplace」は
どっちが早いかテストしようかと思っていたのですが、ちと忙しくて
検証していません。

もう一人自分が欲しい・・・


Mr.XRAY  2008-04-27 07:42:21  No: 30592

>別のフラグと組み合わせればよいのかな?

これがあればいいんですが,ないようですね(多分).
ということは,結局自作でしょうか(笑).

では,がんばって下さいね.


ofZ  2008-04-30 18:28:53  No: 30593

解決じゃないけど、解決にして〆ます

簡単なテストの結果
「自作の半角→全角関数」>「LCMapString & StringReplace」
自作の方が遅かった。
特に、変換対象の文字列が長くなればなるほど遅くなる。
まだ改善の余地がある自作関数ではあるけれど、改善はまた今度。

\ 記号に注意しておけばいいのですが、そういうことを、
誰も記述していない(ように見える)のが気になる・・・。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加