2005C#で開発しています。バイナリファイルにNo(long型)日付(long型(110101という形式))住所(string型(\0で終了の可変長))が書き込まれています。それを読み出したいです。br.ReadInt64();で読み出せています。MesseageBox.Showで確認済み。br.ReadString();では読み出せませんでした。文字列の先頭に長さを付け、7ビットの整数としてまとめてエンコードします。いうのがよくわかりませんでした...。ちなみに、バイナリファイルの住所には"abc\0"を書き込んであります。string(l.ToArray());バイナリファイルの構成を変えてもよいのであれば、文字列の前に文字数をUInt64(でなくてもよいけど)付加させたほうが読み込み安いかも。返信ありがとうございます。string(l.ToArray());>こちら試してみます。書き込み形式を変えてみました。BinaryWriter(fS);sw.Write(prm.no);sw.Write(prm.day);sw.Write(prm.i);sw.Write(prm.address);これだと、"abc\0"は取得できませんでした。プログラムの仕方が間違っていると思うのですがどこが違うのかわからないので教えてください。string(br.ReadChars(prm.i));とするとループなんかしなくてもいいということを言いたかったのですけど。文字列読み出すだけで良いはずですけど。するとループなんかしなくてもいいということを言いたかったのですけど。