从二进制文件读取并在列表框中显示

时间:2018-04-18 00:55:22

标签: c#

我希望有人可以帮助我,因为我坐了几个小时没有运气。这是我必须完成的练习。 Exercise to complete

我试过了,但遇到了一个小问题。当我必须从二进制文件中读取并按照指示显示在列表框中时,数据彼此相邻而不是一个在另一个之下。这是我在下面的代码,用于创建文件的按钮并进行计算:

    BinaryWriter bw;
    BinaryReader br;

    private void button1_Click(object sender, EventArgs e)
    {



        //create the file
        bw = new BinaryWriter(new FileStream("mydata", FileMode.Create));

        string val = "";
        string set = "";
        int count = 1;
        double total = 0.0;
        double ave = 0.0;
        string data = "";
        string temp = "";

        string sets = Interaction.InputBox("How many sets would you like to enter ?", "Sets");
        int numSet = int.Parse(sets);

        for (int j = 0; j < numSet; j++)
        {
            val = "";
            set = "";
            data = "";
            ave = 0.0;
            total = 0.0;
            count = 1;
            for (int i = 0; i < 5; i++)
            {
                val = Interaction.InputBox("Enter number " + count + " to store", "Set "+(j+1), "");
                set = set + " " + val;

                total = total + double.Parse(val);
                count++;

            }
            ave = total / 3.0;
            String fave = String.Format("{0:0.00}", ave);
            data = set + " and average: " + fave;
            temp = temp + data + "\n";


        }
        bw.Write(temp);
        bw.Close();

    }

此后的代码是需要从二进制文件中读取并在列表框中输出的代码。

private void button2_Click(object sender, EventArgs e)
    {
        //reading

        br = new BinaryReader(new FileStream("mydata", FileMode.Open));
        string output = br.ReadString();
        listBox1.Items.Add(output);
        br.Close();


    }

这就是我目前的输出结果:

Current output

它应该是这样的,第二组数字和平均值低于第一组。

我希望我能够表达自己的问题并且有人可以帮助我。在此先感谢:)

1 个答案:

答案 0 :(得分:0)

现在您正在将所有内容读入1个字符串output

您只需在Button2点击方法中向ListView添加1个项目output

您需要在ListView中为每行添加。