如何读取文本文件,然后使用分隔线放置数据?

pur*_*ppc 3 c# file-io streamreader

private void open(object sender, EventArgs e)
{         
    OpenFileDialog openDialog = new OpenFileDialog();

    if (openDialog.ShowDialog() == DialogResult.OK)
    {

        string[] lines = File.ReadAllLines(openDialog.FileName);

        foreach (string line in lines)
        {
            var text = line.Split(',', '\n');
            dataGridView1.Rows.Add(text);
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

所以在这段代码中我可以读取一个文本文件,但我只能像在1格一样.以下是示例文本文件的外观:

test,1,2,3,4,5,6,
testing,7,8,9,10,11,12,
working,13,14,15,16,17,18,
multiline,19,20,21,22,23,24,
NEXTDATA
see,25,26,36,46,56,66,
program,7,8,9,10,11,12,
macroer,13,14,15,16,17,18,
readextra,19,20,21,22,23,24,
Run Code Online (Sandbox Code Playgroud)

因此,如果我到达名为"NEXTDATA"的行,我希望将数据放入其中dataGridView2.如何检查它是否到达该行,然后它将执行与代码相同的操作dataGridView1

我也使用ReadLine()ReadAllLines()

p.s*_*w.g 6

尝试使用这样的东西:

var targetGridView = dataGridView1;
foreach (string line in lines)
{
    if (line == "NEXTDATA") 
    {
        targetGridView = dataGridView2;
        continue;
    }

    var text = line.Split(',', '\n');
    targetGridView.Rows.Add(text);
}
Run Code Online (Sandbox Code Playgroud)

或者如果你需要之间来回切换dataGridView1,并dataGridView2,试试这个:

var targetGridView = dataGridView1;
foreach (string line in lines)
{
    if (line == "NEXTDATA") 
    {
        targetGridView = (targetGridView == dataGridView1) 
            ? dataGridView2 : dataGridView1;
        continue;
    }

    var text = line.Split(',', '\n');
    targetGridView.Rows.Add(text);
}
Run Code Online (Sandbox Code Playgroud)


Sim*_*ead 5

存储对GridView您要添加的引用..然后根据需要翻转它:

var currentGridView = dataGridView1;

foreach (string line in lines)
{
    if (line == "NEXTDATA") {
        currentGridView = dataGridView2;
        continue;
    }

    var text = line.Split(',', '\n');
    currentGridView.Rows.Add(text);
}
Run Code Online (Sandbox Code Playgroud)