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

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
たっぱぁ

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

#1

投稿記事 by たっぱぁ » 11年前

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からマルチバイト文字に変更という作業はしております。
エラーの解決とこの部分を作るためのアドバイスなどよろしくお願いします。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

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

#2

投稿記事 by softya(ソフト屋) » 11年前

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

あと、それでも出るなら詳細にエラーメッセージを見たいですね。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

nil
記事: 428
登録日時: 12年前

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

#3

投稿記事 by nil » 11年前

エラーメッセージは詳細に書いていただいたほうが答えやすいです。
特に何行目でエラーが起こっているのか、という情報は非常に重要です。

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

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

閉鎖

“C言語何でも質問掲示板” へ戻る