ファイルを読込ませる方法を教えてください。 – プログラミング – Home

ファイルを読込ませる方法を教えてくださ...
 
通知
すべてクリア

[解決済] ファイルを読込ませる方法を教えてください。


ひろ
 ひろ
(@ひろ)
ゲスト
結合: 25年前
投稿: 149
Topic starter  

/* ファイルオープン */
CFile m_File;
CFileException fileException;
CFileStatus status;

/* 読み込みファイル */

if ( !m_File.Open( m_FileName, CFile::modeRead ), &fileException )
{
TRACE( Can't open file %s, error = %u\n, m_FileName,
fileException.m_cause );
}

/* ファイルのステータス取得 */
m_File.GetStatus( status );

/* ファイルサイズの表示 */
char msgs[128];
sprintf( msgs, ファイルサイズは [%ld]Byte です。, status.m_size );
AfxMessageBox( msgs, MB_OK );

     void *ptr;

/* ファイルサイズを格納する領域の割り当て */
ptr = malloc( status.m_size );

ファイルを開いて、ファイルサイズを取得しています。
ここから、ファイルを全て読込ませるにはどうしたらよいのでしょうか?
ご存知の方おられましたら、教えて頂けると助かります。
よろしくお願い致します。

m_File.Read(&ptr,sizeof(status.m_size));

上記の様に記述するとエラーになってしまいます。


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

m_File.Read(ptr, status.m_size); ではなく
>m_File.Read(&ptr, sizeof(status.m_size));

にしたわけは何ですか?


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 21年前
投稿: 1467
 

>>m_File.Read(&ptr,sizeof(status.m_size));

&はいらない気がしますが。。。


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 21年前
投稿: 1467
 

よくみたらsizeofもでしたw


返信引用
ひろ
 ひろ
(@ひろ)
ゲスト
結合: 25年前
投稿: 149
Topic starter  

m_File.Read(ptr, status.m_size); ではなく
>m_File.Read(&ptr, sizeof(status.m_size));

MSDNのヘルプ等を見て試行錯誤していまして
いろいろと試してみたらいまの記述になりました。
&ptrに関しては、データの一番最初のアドレスを参照すると
自分で認識しているので、&は必要なのかなと思ってつけました。

sizeofは、付けてみただけです。

初心者なもので、質問の回答になっていない場合は、
申し訳ありません。


返信引用
ひろ
 ひろ
(@ひろ)
ゲスト
結合: 25年前
投稿: 149
Topic starter  

島さま、Blueさま、ご指摘ありがとうございます。
&とsizeofを削除したら、エラーなくなりました。

重ね重ね申し訳ないのですが、
読み取ったファイルの先頭から、13バイト目~16バイト目までのデータを
(現状: 0x00000001)を → 0x00000005 に書き換えたい場合、
どのような記述をしていけばいいのでしょうか。。


返信引用
ひろ
 ひろ
(@ひろ)
ゲスト
結合: 25年前
投稿: 149
Topic starter  

long *b_ptr = (long*)ptr;
b_ptr[3] = 0x00000200;

m_File.Write(ptr,status.m_size);

上記の様に記述したら、うまく書き換えられました。
お手数をおかけしました。
そして、アドバイス有難うございました。


返信引用
ひろ
 ひろ
(@ひろ)
ゲスト
結合: 25年前
投稿: 149
Topic starter  

解決済みのチェック忘れてました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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