ページ 11

CSVファイルを使った会話の作り方

Posted: 2012年10月02日(火) 07:37
by たっぱぁ
CSVファイルから会話文(複数行の文字列)を読み込み、それを表示するというものを作りたいのですが、龍神録11章を見ながら試してみてもうまくいきません。
考えているのは 複数行の文字列取得→ボタンを押すと文字列の表示→時々画像の変更→繰り返し...というもので、画像の変更もcsvにマーカー(特定の文字)をおいてそれを読まれたときに画像を書き換えるというようにしたいです。
まず、11章のファイルロードをちょっとだけ書き換えたものが以下になります。この部分は始めたばかりなのでまだ全然できておりませんが・・・

コード:

#include "GV.h"
extern int white;
int input[64];
char inputc[64];
int j=0;
void scene_window(){
	//会話ウインドウとボタンの設定
}
void scene_load(){
	//テキストをファイルから読み込む方式にしたい
        int n,num,i,fp;
        char fname[32]={"csv/text.csv"};

        fp = FileRead_open(fname);//ファイル読み込み
        if(fp == NULL){
                printfDx("read error\n");
                return;
        }
        n=0 , num=0;
        while(1){
                for(i=0;i<64;i++){
                        inputc[i]=input[i]=FileRead_getc(fp);//1文字取得する
                        if(inputc[i]=='/'){//スラッシュがあれば
                                while(FileRead_getc(fp)!='\n');//改行までループ
                                i=-1;//カウンタを最初に戻して
                                continue;
                        }
                        if(input[i]==',' || input[i]=='\n'){//カンマか改行なら
                                inputc[i]='\0';//そこまでを文字列とし
                                break;
                        }
                        if(input[i]==EOF){//ファイルの終わりなら
                                goto EXFILE;//終了
                        }
                //ここのswitch文は必要ないので削除
                }
                num++;
                if(num==18){
                        num=0;
                        n++;
                }
        }
EXFILE:
        FileRead_close(fp);
}
void scene_graph(){
	DrawGraph(0,0,  img_scene[0][0],false);
	DrawGraph(0,330,img_scene[0][1],true);
	//for(int j=0;j<64;j++)
	DrawString(20,320,inputc[j],white);
	//描画云々
}
void scene_main(){
	scene_load();
	scene_window();
	scene_graph();
}
この状態で実行するとinputc[]がcharからconst TCHARに変換できないとエラーが出ます。
掲示板のなかを色々と見てみたのですが、原因や文字列の表示の仕方がいまいちわかりませんでした。
プロジェクトのプロパティで文字コードをUnicodeからマルチバイト文字に変更という作業はしております。
エラーの解決とこの部分を作るためのアドバイスなどよろしくお願いします。

Re: CSVファイルを使った会話の作り方

Posted: 2012年10月02日(火) 11:02
by softya(ソフト屋)
>inputc[]がcharからconst TCHARに変換できないとエラーが出ます。
その系統のエラーは、プロジェクトのプロパティでマルチバイト文字になっていない時にしか出ないはずです。
もう一度確認した上でソリューションのリビルトをしてみてください。

あと、それでも出るなら詳細にエラーメッセージを見たいですね。

Re: CSVファイルを使った会話の作り方

Posted: 2012年10月02日(火) 18:45
by nil
エラーメッセージは詳細に書いていただいたほうが答えやすいです。
特に何行目でエラーが起こっているのか、という情報は非常に重要です。

見たところ、エラーが出ているのはおそらく50行目でしょう。
それを考えるとエラーメッセージは正しくはcharからconst TCHAR*でしょう。
DrawStringの引数は(int,int,const TCHAR*,int)で、第三引数はcharの配列を渡さねばなりません。

少し気になったのは37行目からのnumやnです。
見たところ使用してはいないようですが。