- - PR -
C#でのバイナリファイル操作
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-09-01 21:05
C#でのバイナリ操作について教えてください。
現在C++のアプリケーションをC#へコンバート作業を行っています。 C++アプリの中に、バイナリファイルへデータを出力する部分があり、そこをどのようにC#で行うか悩んでいます。 C++ソース int Code = 37652; //0x9314 fwrite(&Code, 2, 1, FP);//FPはファイルポインタ バイナルファイルには 14 93と出力される C#ソース BinaryWriter bw = new BinaryWriter(FS);//FSはファイルストリーム int Code = 37652; //0x9314 bw.Write(Code); バイナリファイルには 14 93 00 00と出力される intのままでは余分に 00 00 がついてきます。 私自身がバイナリファイルについて知識が乏しいこともあり、思うように進みません。 直接の回答でなくとも、参考になるサイトでもあれば教えていただけないでしょうか。 よろしくお願い致します。 | ||||||||
|
投稿日時: 2005-09-01 21:32
byte
_________________ | ||||||||
|
投稿日時: 2005-09-01 21:43
今回の話「だけ」であれば、Int16 でいいのでは?
おっと、UInt16か。 [ メッセージ編集済み 編集者: にしざき 編集日時 2005-09-01 21:44 ] | ||||||||
|
投稿日時: 2005-09-01 21:57
はじめまして
C#のint型は4バイトだからでは? C++のほうは、2バイト書き込みをされているようですし | ||||||||
|
投稿日時: 2005-09-01 22:59
取りあえずBinaryWriter.Writeの様々なオーバーロード | ||||||||
|
投稿日時: 2005-09-02 09:51
おはようございます。
>Jittaさん intをbyte型に変更すれば良いということでしょうか。 >にしざきさん Int16だとうまくいきました。 Uint16でもやってみます。 >未記入さん そのようです。 2バイト変数に変換して実行するとうまくいきました。 >Hongliangさん 参考にさせていただきます。 とりあえず今回の仕様はInt16を使えば出来そうです。 皆様ありがとうございました。 | ||||||||
|
投稿日時: 2005-09-02 13:47
すみません、追加で質問なんですが、上記のコードのようにしてみると、 最初にセットした「37652」ではなく「-27884」と表示されてしまいます。 どこか間違っているのでしょうか? なんて事にならないように。 _________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ |
1