string文字が含まれたファイルを0でパティングし書き出したのですが、読み込む際に、その0が邪魔をし、うまく呼び出せなくなってしまいました。
以前のパティング関係の質疑↓
https://teratail.com/questions/19404
読み込む際にパティングの0のみを除外し、読み込むことは可能でしょうか?
今のプログラムですと、
// ファイル書き出し
private void button2_Click(object sender, EventArgs e)
{
// comboBox1 の文字列で並び替え
lst.Sort((x, y) => x.cb.CompareTo(y.cb));
using (BinaryWriter w = new BinaryWriter(File.OpenWrite(@"c:\data\test.dat"))) { foreach(data Item in lst) { w.Write(Item.cb.PadLeft(3, '\0')); w.Write(Item.tb_1); w.Write(Item.tb_2); w.Write(Item.tb_3); } } }
でファイルに書き出し、
// 保存したファイルの呼び出し
private void button3_Click(object sender, EventArgs e)
{
// 簡単読込
FileStream fs = new FileStream(@"c:\data\test.dat",
FileMode.Open,
FileAccess.Read);
BinaryReader br = new BinaryReader(fs); for (int i=0; i<3; i++) { cb_hai[i] = br.ReadString(); tb_1_hai[i] = br.ReadInt32(); tb_2_hai[i] = br.ReadInt32(); tb_3_hai[i] = br.ReadInt32(); comboBox1.Items.Add(cb_hai[i]); } }
でファイルを読み込んでいます。
例えば、
「w.Write(Item.cb.PadLeft(3, '\0'));」で、a(1文字)、aa(2文字)と入力し、読み込んでみるとうまく表示できません。
しかし、aaa(3文字)と入力し、読み込むとうまく表示することができます。
この場合、どのような処理が必要になってくるでしょうか?
お手数おかけして申し訳ございませんが、ご指導ご鞭撻の程よろしくお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/11/09 08:55