DXライブラリを使ったファイルの読み込み

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

DXライブラリを使ったファイルの読み込み

#1

投稿記事 by Limone » 15年前

やりたいこと:ITWM.txtから1行ずつ読み込む
問題:ビルドは成功するものの、読み込めない
どうすれば良いんでしょう?

void setITEM_DATA(void){
#define file_name "ITWM.txt"
#define full_path file_path file_name
#define Memory_Size 10240 //文字列を格納するメモリ領域のサイズ

int FileHandle ;
// ファイルを開く
FileHandle = FileRead_open( file_path ) ;
test_data td[3]; //構造体から

for(int i=0;i<5;i++){
char *dammy = new char();

//1行ずつ読み込むんでdammyに格納?
FileRead_gets( dammy, Memory_Size , FileHandle ) ;
setRecord(dammy,&td);//読み込んだ後の処理
}

// ファイルを閉じる
FileRead_close( FileHandle ) ;

}

削除済み

Re:DXライブラリを使ったファイルの読み込み

#2

投稿記事 by 削除済み » 15年前

規約違反コメントでしたので、管理人が削除致しました。
規約を守った投稿をお願いいたします。

softya

Re:DXライブラリを使ったファイルの読み込み

#3

投稿記事 by softya » 15年前

とりあえず、ざっと見ただけでも問題が多数あります。

void setITEM_DATA(void){
#define file_name "ITWM.txt"
#define full_path file_path file_name
#define Memory_Size 10240 //文字列を格納するメモリ領域のサイズ

int FileHandle ;
// ファイルを開く
FileHandle = FileRead_open( file_path ) ; ← full_pathでは?
  FileHandle のエラーをチェックしてください。
test_data td[3]; //構造体から ← このデータはsetITEM_DATA関数からreturnすると無効になりますが問題では?使っているところがありません

for(int i=0;i<5;i++){ ←td[3]を処理するなら5ではなく3では?
char *dammy = new char(); ←char dammy[Memory_Size];では?

//1行ずつ読み込むんでdammyに格納?
FileRead_gets( dammy, Memory_Size , FileHandle ) ;
setRecord(dammy,&td);//読み込んだ後の処理
}

// ファイルを閉じる
FileRead_close( FileHandle ) ;
}

これらだけ直しても動く保証はありません。
ここで、これだけミスしているので他の部分にも相当ミスがあると思います。

toyo

Re:DXライブラリを使ったファイルの読み込み

#4

投稿記事 by toyo » 15年前

今回はnewで動的確保する必要はないので
char dummy[Memory_Size];
のほうがいいと思いますがnewで動的に確保した場合は不要になった時点でdeleteしないといけません

for(int i=0;i<3;i++){
char *dummy = new char[Memory_Size];

//1行ずつ読み込むんでdummyに格納?
FileRead_gets( dummy, Memory_Size , FileHandle ) ;
setRecord(dummy,&td);//読み込んだ後の処理
delete [/url] dummy;
}

ookami

Re:DXライブラリを使ったファイルの読み込み

#5

投稿記事 by ookami » 15年前

ステップ実行はご存知ですか?
visual c++系なら「visual c++ ステップ実行 ブレークポイント」あたりで検索するとよいと思います。

一行ずつ実行できて、そのたびに変数などの値を見れるので非常に有効なデバッグ手段になりますよ。

Limone

Re:DXライブラリを使ったファイルの読み込み

#6

投稿記事 by Limone » 15年前

>FileHandle = FileRead_open( file_path ) ; ← full_pathでは?
ここが原因でした。
ステップ実行も試していたんですが、FileHandleの数値が動いてたので分かりませんでした。

どうもありがとうございました。

閉鎖

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