文字列をローマ字表記に変換 – プログラミング – Home

文字列をローマ字表記に変換
 
通知
すべてクリア

[解決済] 文字列をローマ字表記に変換


aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
Topic starter  

いつもお世話になっております。よろしくお願いします。

IME で変換、確定した文字列をローマ字表記にしたいのですが、簡単に済ます方法はあ
りますでしょうか?
例えば、「やまだ」→「山田」と変換して確定したら、そこからどうにかして
「yamada」という文字列を取得したいのです。
フリガナの取得(山田→ヤマダ)は ImmGetCompositionString という API でできまし
た。
ローマ字もこの延長でできないか!?と思い調べてみたところ、GCS_TYPINGINFO とかい
う値がまさに希望を満たしてくれそうだったのですが、コイツが MSDN にもヘッダファ
イルにも見当たりませんでした。無念。
フリガナとローマ字の対応テーブルを持つというテもありますが、できればそれは最終
手段として、もっとスマートな方法があるのならばそれを採用したいと考えています。

何かいい方法をご存知でしたら、どうかよろしくご教授お願いいたします。


引用
トピックタグ
ねこにゃん
 ねこにゃん
(@ねこにゃん)
ゲスト
結合: 21年前
投稿: 1
 

GCS_TYPINGINFOの値がわからないなら他のGCS_XXXの値を見て見れば
大体どの値か想像つくんではないかな?
適当に値を試していけばいつかたどりつけるよ。きっと。


返信引用
tib
 tib
(@tib)
ゲスト
結合: 22年前
投稿: 468
 

私自身はこれを使った事がないのですが、
http://nienie.com/~masapico/api_ImmGetCompositionString.html
は参考になりますか?

で、ちょっと疑問に思ったのが、「ローマ字表記が欲しいのか、ユーザーの入力内容がほ
しいのか」という点です。

例えば、「しゃちょう(社長)」と入力するのにも「shachou」と入力する人もいれば
「syatyou」と入力する人もいるでしょうし、「shixyatixyou」と入力する人もいるかも
知れません。
もし、「shixyatixyou」と入力されても「shachou」と表示させたい、というのであれ
ば、フリガナ→ローマ字対応テーブルを持たせた方がいいと思います。


返信引用
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
Topic starter  

ねこにゃんさん>
GCS_XXX の値が 0x0001 から 0x1000 まで定義されていたので、0x2000 ~ 0x80000000
まで試しましたが、すべてエラーが返ってきてしまいました。

tib さん>
そのページには GCS_TYPINGINFO というのがありますが、それがヘッダファイルにも最
新の Platform SDK にも載っていないのです。やりたいことはまさにその TYPINGINFO
の通りなのですが。

言葉が足りず申し訳ありません。
>で、ちょっと疑問に思ったのが、「ローマ字表記が欲しいのか、ユーザーの入力内容
>がほしいのか」という点です。
後者です。

環境を書き忘れてました。
Win98 SE + VC++ 6.0、MFC 有です。


返信引用
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
Topic starter  

古いスレを上げて申し訳ありませんが、一応報告。
SetWindowsHookEx で WH_KEYBOARD を引っ掛けてやることでなんとかなりそうです。
ありがとうございました。


返信引用
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

> SetWindowsHookEx で WH_KEYBOARD を引っ掛けてやることでなんとかなりそうです。

ふと思ったのですが、かな入力や
はたまた、手書き、音声入力等は考慮しなくていいんですか?


返信引用
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
Topic starter  

>ふと思ったのですが、かな入力や
>はたまた、手書き、音声入力等は考慮しなくていいんですか?

実を言うと学校の課題でして^^;
フリガナが取得できるだけでも、クラス全体のレベルからすれば凝りすぎな感があるの
で、ローマ字入力のみでよしとします。応用でかな入力くらいは対応できそうですが、
手書きや音声まではちょっと…
課題の中にフリガナの取得は含まれておらず、勝手にやっていることですし、まだまだ
他の部分も未完成なので、とりあえずそちらに注力したいと思います。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました