2009-08-24 9 views
0

この次の問題があります。 バイナリファイルがあります。バイナリファイルには、システムの重要なデータが書き込まれています。 フィールドの1つはtimeで、これはマイクロ秒のフォーマットでDateTime.Now.ToString( "HHmmssffffff")を使用しています。このデータ(文字列内)を(ToCahrArrayに)変換して(そしてそれをデバッグしても問題ありません) これを書き込んでファイルに書き出します。PsPadでバイナリをAsciiに変換すると、このフィールドとnother以外の部分にデータが破損していることがわかります。メッセージは大丈夫ですC#.netのバイナリファイルへの印刷時間

コード:

void Write(string strData) { 
    char[] cD = strData.ToCharArry(); 
    bw.Write(c); //br is from type of BinaryWriter 
    bw.Flush(); 
} 
+0

テキストデータをテキストファイルに書き込んでいないのはなぜですか? –

答えて

5

あなたがバイトをASCIIではない、Unicode文字のバイトを書いているあなたはアスキーをしたい場合。これを変更してEncodingクラスを使用する必要があります。

byte[] data = Encoding.ASCII.GetBytes(strData); 
bw.Write(data); 

Joel Spolsky's article on character sets and encodingを強くお勧めします。現在のコードが正しく動作していないことを理解するのに役立ちます。

+0

+1ジョエルの記事への参照 - それは読む必要があります! – JMarsch