读取文本文件时忽略页眉和页脚行

本文关键字:取文本 文件 读取 | 更新日期: 2023-09-27 18:34:10

这是我到目前为止的代码:

string _nextLine;
string[] _columns;
char[] delimiters;
delimiters = "|".ToCharArray();
using (StreamReader _reader = ...)
{
    _nextLine = _reader.ReadLine();
    while (_nextLine != null)
    {
        _columns = _nextLine.Split(delimiters);
        JazzORBuffer.AddRow();
        JazzORBuffer.Server = _columns[0];
        JazzORBuffer.Country = _columns[1];
        JazzORBuffer.QuoteNumber = _columns[2];
        _nextLine = _reader.ReadLine();
    }
}

我的文件的前 5 行如下所示:

在 x 和 y 之间创建的产品第 1 列标题 |第 2 列标题 |列 3 页眉 |第 4 列页眉 |温迪·戴夫 |约翰 |史蒂夫 |

最后 3 行如下所示:

温迪·戴夫 |约翰 |史蒂夫 |产品总数|49545

我需要在代码中更改什么才能忽略文件中的前 3 行和最后一行?

读取文本文件时忽略页眉和页脚行

我不是 100% 确定我理解这个问题,但请尝试:

string[] lines = File.ReadAllLines("FilePath");
string[] _columns;
//Start at index 2 - and keep looping until index Length - 2
for (int i = 2; i < lines.Length - 2; i++)
{
    _columns = lines[i].Split('|');
    JazzORBuffer.AddRow();
    JazzORBuffer.Server = _columns[0];
    JazzORBuffer.Country = _columns[1];
    JazzORBuffer.QuoteNumber = _columns[2];
}

注意 - 这将通过一次性将整个文件读入内存来改变您正在执行的操作的性能。如果它是一个非常大的文件,这可能不具有性能。如果是,请说:)