- PR -

バイナリファイルの内容をすべてmallocした構造体に設定したい

投稿者投稿内容
関取
会議室デビュー日: 2005/03/10
投稿数: 19
投稿日時: 2006-02-21 12:45
fopen(....);
while(1){
if( fseek(fp, sizeof(person)*i, SEEK_SET) == 0);
i++;
else
break;
}

lpp = (person*)malloc(sizeof(person)* i )
fclose();
free(lpp);

のようにしました、これで大丈夫でしょうか?投稿してくださった方ありがとうです。
関取
会議室デビュー日: 2005/03/10
投稿数: 19
投稿日時: 2006-02-21 12:50
投稿してくださった方ありがとうです。
ftell関数などがあったのですね。
これで問題を解決しました。感謝です。
うちうせん
ベテラン
会議室デビュー日: 2003/08/08
投稿数: 96
お住まい・勤務地: 福岡県
投稿日時: 2006-02-21 13:18
その方法よりはBlueさんの方法(サイズから計算)がいいと思いますよ。
10件くらいであれば問題ないですが、件数が増えるとループに時間とられちゃいますので。
引用:

関取さんの書き込み (2006-02-21 12:45) より:
while(1){
if( fseek(fp, sizeof(person)*i, SEEK_SET) == 0);
i++;
else
break;
}


あと上記の部分の書き方ですが、下記の書き方でもいけます。
while(!fseek(fp, sizeof(person)*i, SEEK_SET))
{
  i++;
}
見た目すっきりするので参考にしてみてください。

_________________
うちうせん@SE見習い

[ メッセージ編集済み 編集者: うちうせん 編集日時 2006-02-21 13:22 ]

スキルアップ/キャリアアップ(JOB@IT)