メール添付のファイルが読めない。というお話でして
一旦、Jw_cadで読み込んで書き出すと何故か?
読める?という不思議な現象
ということで、メール添付のJwwファイルを送ってくださいということで調査した。
結論、どうもJacConvertというソフトで生成したJwwデータファイルが変である。
バイナリで比べてみると「CDataList」の後が数バイト一致しない、一致しない内容が読めない原因だったのであろう。
なので、JacConvertでもCDataListを吐かないデータなら問題なく読める。
ところで、
まず、不思議であるが、JacConvertではファイルの継ぎ目に入っているファイルバージョンの数値がなんと「&H0000」である。なんで?
そして、バイナリを二つ並べて、チェックする。
JwwよりもJacConvertのバイナリのほうが CDateの手前で6bytes多い、これらは&H00が6つある、そして、CDateの後になぜか?NULLが二つ、入っている。
ということで、CDateを読みに行って4byte読んで、&H0000かを調べる。そしたら2Byteから読みしてから、CDateを読む、そして、4BytesのNULLを読む。そして元通りの処理を続ける。
みたいかな感じで、無事に読めています。
Jwwを吐くプログラムもたくさんあるので、それぞれに対応させるのも大変だ。ということで、でも、なぜか?Jw_cadでは読めている?MFCの関係かな?