C++を使用して作成しています。
RPG等の会話プログラムを作成しようと考えているのですが、
テキストファイルと画像に、
あいうえお かきくけこ
さしすせそ ……
………
と、50音表を作成して、そのファイルを読み込み保存しておいて、
会話が「こんにちは」だったら、まず「こ」を保存しておいた50音表から
何行の何列にあるのか調べ、次に「ん」を同様に調べる、という方法を思いついたので
すが、上手く検索できません。
たとえば「あ」の場合は
char str[3]=あ
あ=str[0]+str[1]
で宜しいのでしょうか?
上手く検索できなくて困ってます…。
まず環境やツールをもうすこしくわしく書かれるとレスもしやすいのですが
参考書や講座的サイトの文字列の部分をしらべれば答えは出ると思います
C++というだけからだと strstrなどが使えると思います
さらにMFCのCStringがつかえるなら
CString Gojuon,str1;int position,retsu,gyou;
Gojuon=あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほ~~ん;
//たとえば ち を検索する場合
position =Gojuon.Find(ち);
//とやれば position=32 とでるから(1文字は2バイト)
retsu = (position / 2) / 5 + 1; gyou = (position / 2) % 5 + 1;
でできると思います
//変数にいれてやるときはたとえば
str1 = は;
position =Gojuon.Find(str1);
retsu = (position / 2) / 5 + 1; gyou = (position / 2) % 5 + 1;
それから過去ログは
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200104/01040020.txt
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200111/01110035.txt
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200207/02070092.txt
などがありますが
質問内容だけだとやりたい事が良く分からないですね。
まず、
> RPG等の会話プログラムを作成しようと考えているのですが、
> テキストファイルと画像に、
>
> あいうえお かきくけこ
> さしすせそ ……
> ………
>
> と、50音表を作成して、そのファイルを読み込み保存しておいて、
> 会話が「こんにちは」だったら、まず「こ」を保存しておいた50音表から
> 何行の何列にあるのか調べ、次に「ん」を同様に調べる、という方法を思いついたので
> すが、上手く検索できません。
この部分が何をしたいのかが良く分からないです。
内容から憶測すると、会話の内容を文字のイメージが入った画像ファイルから
切り出してその画像を組み合わせて表示したいと言う事なんですかねぇ?
ただ、そうならテキストファイルが必要になる理由が良く分からないです。
単純に一文字の画像の大きさがわかっているなら、
文字列検索のように効率が悪い事をするよりも文字コードから計算で算出
出来るような仕組みを考えた方が計算で直接求められる分だけ早そうです。
検索で総当りするよりも計算で求められる仕組みの方が動作効率も良いのでは
と思います。
最初の憶測が間違っていれば、全く見当違いかもしれませんけれど。
あと、
> 上手く検索できません。
>
> たとえば「あ」の場合は
> char str[3]=あ
> あ=str[0]+str[1]
> で宜しいのでしょうか?
> 上手く検索できなくて困ってます…。
うまく出来なかったのであれば、
うまく検索できなかった時にどんな処理をしていたのかという部分の説明が不足です。
少なくとも上記の説明からは何を使用としてリードバイトとトレイルバイトを足すような
事をしているのかが良くわかりません。たぶん、それでは検索できないと思いますが。
SJISと言うのはどういう文字コードでリードバイトとトレイルバイトとは何を指して
いるのかと言う部分が分からないのであれば、そこから調べた方がいいような気がします。
あうあう、誤字。
「使用として」じゃなくて「しようとして」です。
私のレスにおいて retsu と gyou の役目をとりちがえていたようです ごめんなさい