通知
すべてクリア
Topic starter
2000年12月16日 2:33 PM
はじめまして。VCを始めたばかりの初心者です。よろしくお願いします。
ファイルを開いてそのままの内容を別の場所に保存するプログラムを作っていたのですけど、
新たに作ったファイルのサイズが明らかに減っているので、バイナリーエディタでそのファイ
ルを開いたところ、00のデータが飛ばされて保存されてしまっていたようです。00のデー
タを無視しないで保存するにはどうすれば良いのでしょうか?また、00以外でも無視される
ものもあるのでしょうか?
ちなみに、ファイルはCStringの変数にfgetcを使って開き、fputsで書き込みました。
2000年12月18日 10:55 AM
WindowsAPIならCreateFile/ReadFile/WriteFile
標準関数ならfopen/fread/fwriteで出来ますね.
0x00は文字列系では特別な記号ですから
CStringの様な文字列を扱うクラスで
0x00を正しく処理することは面倒(またはできません)です.
単純なchar配列(or unsigned char配列)に読み込んで
読み込んだバイト数を覚えておき
読み込んだバイト数分のデータを新しいファイルに書き込むのがいいと思います.
Topic starter
2000年12月19日 3:19 PM
できましたっ!なるほど、charの配列にすればいいんですね。
手軽に扱えそうだったのでCStringの方を使っていたんですけど、
こんな違いがあったとは…。
これに一週間くらい悩んでいたんですよ~。これでやっと先に
進めます。
ホント助かりました。ありがとうございます。