将文本文件读入列表框集合

时间:2010-06-09 21:56:05

标签: c# .net winforms

我需要我的程序将txt文件中包含的数据的不同部分显示到不同的列表框(位于表单的不同选项卡上),以便用户可以看到他们感兴趣的特定数据块。

txt文件中包含的数据如下所示:

G30:39:03:31 JG06
G32:56:36:10 JG04
G31:54:69:52 JG04
G36:32:53:11 JG05
G33:50:05:11 JG06
G39:28:81:21 JG01
G39:22:74:11 JG06
G39:51:44:21 JG03
G39:51:52:22 JG01
G39:51:73:21 JG01
G35:76:24:20 JG06
G35:76:55:11 JG01
G36:31:96:11 JG02
G36:31:96:23 JG02
G36:31:96:41 JG03

虽然更多:)

单独的列表框将仅包含第一个整数对与该列表框名称匹配的行。例如,所有以“G32”开头的行都将添加到G32列表框中。

我认为代码会开始像:

private void ReadToBox()
    {
        FileInfo file = new FileInfo("Jumpgate List.JG");
        StreamReader objRead = file.OpenText();
        while (!objRead.EndOfStream)

但是我不确定从哪里开始排序。

有任何帮助吗?这里有一些代表:D

编辑:

private void ViewForm_Load(object sender, EventArgs e)
    {
        this.PopulateListBox(lstG30, "G30", ("Jumpgate List.JG"));
        this.PopulateListBox(lstG31, "G31", ("Jumpgate List.JG"));
        this.PopulateListBox(lstG32, "G32", ("Jumpgate List.JG"));
        this.PopulateListBox(lstG33, "G33", ("Jumpgate List.JG"));
        this.PopulateListBox(lstG34, "G34", ("Jumpgate List.JG"));
        this.PopulateListBox(lstG35, "G35", ("Jumpgate List.JG"));
        this.PopulateListBox(lstG36, "G36", ("Jumpgate List.JG"));
        this.PopulateListBox(lstG37, "G37", ("Jumpgate List.JG"));
        this.PopulateListBox(lstG38, "G38", ("Jumpgate List.JG"));
        this.PopulateListBox(lstG39, "G39", ("Jumpgate List.JG"));
    }

    void PopulateListBox(ListBox lb, string prefix, string textfile)
    {
        string[] filestrings = textfile.Split(Environment.NewLine.ToCharArray());
        foreach(string line in filestrings)
        {
            if (line.StartsWith(prefix))
                lb.Items.Add(line);
        }
    }

1 个答案:

答案 0 :(得分:2)

一些半伪代码...您将调用以填充每个列表框的方法。指定列表框控件,要隔离的前缀和输入文件:

void PopulateListBox(ListBox lb, string prefix, string[] textfile)
{
    foreach(string line in textfile)
    {
        if (line.StartsWith(prefix))
        lb.Add(line);
    }
}

修改

此方法将文件作为单个字符串处理(而不是期望字符串数组):

void PopulateListBox(ListBox lb, string prefix, string textfile)
{
    string[] filestrings = textfile.Split(Environment.NewLine.ToCharArray());
    foreach(string line in filestrings)
    {
        if (line.StartsWith(prefix))
        lb.Add(line);
    }
}