最近“新・ゲームプログラミングの館”を読んでプログラミングを始めた初心者なのですが、件名の事で悩んでいます。
一度「A(仮)」という名前のCSVファイルを開き、そこに書かれている「B(仮)」というファイル名を読み込み、それを使って「B(仮)」のCSVファイルを開くと言う事をしたいのです。
現状では、「A」という名前のCSVファイルから、「B」というファイル名を読み込むまでは出来ているのですが、何故かその読み込んだ「B」を格納した変数を上手く使えず、「B」のCSVファイルを読み込めずにいます。
環境としてはOSはWindows Vist、使用言語はC言語、DXライブラリ使用、コンパイラにはVisual C++ 2008を使用しています。
ここまで出来たのだから、自力で出来た方が自分の為になるとは思っているのですが、どうしても分かりませんでした。お力添えして頂ければ幸いです。
//使用しているファイルの名前と中身
ファイル名:textID.csv
中身:
textID,textの名前
0,sch1_T.csv
1,sch2_T.csv
ファイル名:sch1_T.csv
中身:
こんばんは
//
#include "DxLib.h"
#include <stdio.h>
#include <stdlib.h>
#define WIND_WIDE 640 //ウィンドウの横幅
#define WIND_HIGHT 480 //ウィンドウの縦幅
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
ChangeWindowMode(TRUE), DxLib_Init(), SetDrawScreen( DX_SCREEN_BACK ); //ウィンドウモード変更と初期化と裏画面設定
SetGraphMode( WIND_WIDE , WIND_HIGHT ,32);//スクリーンの大きさを設定
FILE *fp,*fl;
char *name = "textID.csv";
char txt_buff[256];
int count=0,i;
int ID=0;
char txtName[25];
int White = GetColor(255,255,255);
//文章のマップIDとtextの対応
fp = fopen( name ,"r");
if(fp==NULL){
printf("text.csvファイルが開けません");
exit(1);
}
//マップIDとtextとの対応
for(i=0;i<1;i++)//最初の1行読み飛ばす
while(fgets(txt_buff,sizeof(txt_buff),fp))
break;
while(fgets(txt_buff,sizeof(txt_buff),fp)){
if(ID = atoi(strtok(txt_buff,","))){
strcpy(txtName , strtok(NULL,","));
break;
}
count++;
}
fclose(fp);
fl = fopen(txtName,"r");
if(fl == NULL){
printf("ERR\n");
exit(1);
}
fclose(fl);
// while( 裏画面を表画面に反映, メッセージ処理, 画面クリア )
while( ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0 ){
DrawFormatString(10,320,White,"%s",txtName);//\0があると、そこで描写を終了する
}
DxLib_End(); // DXライブラリ終了処理
return 0;
}