先日、質問させて頂いたみねです。
バイナリファイルの特定のアドレスのデータ
を取得する事は可能になったのですが、
配列に読み込んだデータからデータを探すように
変えたいと思ってます。
前回のアドバイスでfreadを使う事を知ったのですが、
ファイルを2つ読み込んで配列に代入した場合
データが変になってしまいます。
自分のイメージとしてはstream1[list1]とstream2[list2]
それぞれ別にデータを保持しその都度、読み出したいと
思ってるのですが
考え方がオカシイのでしょうか?
やりたい事は、バイナリデータ(File_a.data)の特定箇所の
値を取得、その値と同じアドレスにあるFile_b.dataの文字を
取得するという物です。(文字コード変換ソフトです)
例)File_a.dataの2バイト目の値=F0から
File_b.dataのアドレスF0の値を取得
現在の処理は以下のような感じです
// データa,bオープン
stream1 = fopen( C:\\File_a.data, rb );
stream2 = fopen( C:\\File_b.data, rb );
// stream1に読み込み
numread1 = fread( list1, sizeof( char ), 4000, stream1 );
fclose( stream1 );
// 二つ目のファイルを読み込む前にasc3に代入しないと値がおかしい
┏━ sprintf(asc3,%d,list1[2]);
┃
┃ // stream2に読み込み
┃ numread2 = fread( list2, sizeof( char ), 256, stream2 );
┃ fclose( stream2 );
┃
┗━ 始めはここに書いていた
sprintf(asc2,%02X,list2[atoi(asc3)]);
// 確認用MessageBox
MessageBox((CString) asc2);
アドバイス宜しくお願い致します。
list1とlist2はどのように定義していますか、
また、それがポインタ型である場合は、どのように初期化していますか。
スイマセン原因判りました。
256データを読むのに定義を
BYTE list2[53]
としてました。読み込んだファイルを変えた
時に定義を直し忘れたのが原因でした。
申し訳ありません