1

バイナリファイルへの書き込みに問題があります。

//This is preparing the counter as binary
int nCounterIn = ...;
int nCounterTotalInNetwork = System.Net.IPAddress.HostToNetworkOrder(nCounterIn);
byte[] byteFormat = BitConverter.GetBytes(nCounterTotalInNetwork);
char[] charFormat = System.Text.ASCIIEncoding.ASCII.GetChars(byteFormat);
string strArrResults = new string(charFormat);

//This is how writing it to a file using a BinaryWriter object

m_brWriter.Write(strArrResults.ToCharArray());
m_brWriter.Flush();

問題は、ファイルへの書き込みが正しくないことです。ほとんどの場合、情報は正しく書き込まれますが、それを超えると(間違った表現で) まで127書き込みます。633F255

その後、このエラーを まで繰り返します512

バグは何でしょうか?

4

1 に答える 1

4

これは、7 ビットの ASCII でエンコードしているため、8 番目のビットが切り取られ、0 に設定されます。

なんでこんなことしてるの?私はあなたがそこで何をしているのかを理解しようとしています。

取得したバイト配列をエンコードするのではなく、単純に記述しないのはなぜですか?

つまり、このコードを使用しないのはなぜですか?

//This is preparing the counter as binary
int nCounterIn = ...;
int nCounterTotalInNetwork = System.Net.IPAddress.HostToNetworkOrder(nCounterIn);
byte[] byteFormat = BitConverter.GetBytes(nCounterTotalInNetwork);
m_brWriter.Write(byteFormat);
m_brWriter.Flush();
于 2009-10-31T20:53:16.717 に答える