Lesson4 ファイル読み込み
ファイル読み込みはfopen、fread、fcloseを使っていきます。
テキストファイルはsample.txtで作成し、さっきのデータをそのまま入れます。
”とカンマとコメントは削除します。
(sample.txtの中)
1ここはダンジョンの中です。
1分かれ道があります。
3Y=まっすぐ進む、N=右に曲がる
49
55
1分かれ道があります。
3Y=左に曲がる、N=まっすぐ進む
412
51
1分かれ道があります。
3Y=左に曲がる、N=右に曲がる
41
1分かれ道があります。
3Y=まっすぐ進む、N=右に曲がる
41
1出口だ
0
|
次のように改良します。
#define MAX_SCRIPT_LINE 20 //スクリプトの最大行
char Data[MAX_SCRIPT_LINE][80];//スクリプトデータ
char temp[1000];//テンポラリ
void ScriptRead()
{//ファイルからスクリプトを読み込む
FILE *fp;
fp=fopen("sample.txt","rb");
if(fp==NULL){
printf("ファイルがありません\n");
exit(0);
}
fread(temp,1,1000,fp);
fclose(fp);
int Adr=0,a,b=0;
char c;
for(a=0;a<1000;a++){
c=temp[a];//1文字読み込み
if(c==0x0d){//改行コードなら
Data[Adr][b]=0;//文字終端を書き込み
Adr++;b=0;//次の行設定
}else if(c!=0x0a){//改行コード以外なら
Data[Adr][b]=c;//1文字書き込み
b++;//次の文字へ
}
if(Adr>=MAX_SCRIPT_LINE)
break;//行をオーバーした
}
}
int main()
{
int Adr=0;
int yes=0,no=0;//フラグ
int ch;
ScriptRead();//ここでファイルから読み出し
printf("スクリプト開始します。\n");
|
今現在、ファイルが最大1000バイト、スクリプトが最大20行、1行につき79文字と
制限がついています。
この制限は後で取り除きますが、もう少し大きいスクリプトを作る場合は数値を
変えてみてください。