2つのバイナリファイルを開く – プログラミング – Home

2つのバイナリファイルを開く
 
通知
すべてクリア

[解決済] 2つのバイナリファイルを開く


みね
 みね
(@みね)
ゲスト
結合: 20年前
投稿: 5
Topic starter  

先日、質問させて頂いたみねです。

バイナリファイルの特定のアドレスのデータ
を取得する事は可能になったのですが、
配列に読み込んだデータからデータを探すように
変えたいと思ってます。

前回のアドバイスで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);

アドバイス宜しくお願い致します。


引用未解決
トピックタグ
REE
 REE
(@REE)
ゲスト
結合: 23年前
投稿: 240
 

list1とlist2はどのように定義していますか、
また、それがポインタ型である場合は、どのように初期化していますか。


返信引用
みね
 みね
(@みね)
ゲスト
結合: 20年前
投稿: 5
Topic starter  

スイマセン原因判りました。

256データを読むのに定義を

BYTE list2[53]

としてました。読み込んだファイルを変えた
時に定義を直し忘れたのが原因でした。

申し訳ありません


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました