我怎么可能遍历文本文件中第 n:th 行之后的数据

本文关键字:th 之后 数据 遍历 怎么可能 文本 文件 | 更新日期: 2023-09-27 18:35:52

我有一个文本文件,我认为我需要迭代以获取所有数据。以下是文本文件的构造方式:从第 1-9 行开始,有关于将收到发票的公司的信息。第 10 行显示项目的数量。例如,如果第 10 行是 2,则以下行如下所示:

11 牛奶"第一项说明"
12 4 "项目1的数量"
13 25"价格"
14 避孕套"第二项说明"
15 10 "项目2的数量"
16 2.5 "价格"

我现在要做的是逐步浏览文件,然后当我在第 10 行时,以某种方式遍历项目数量,在本例 2 中,然后在上面的文本文件中创建一个数据对象。这是一个五步过程。
算法:

  1. 逐步阅读文本文件

  2. 添加列表中的每一行

  3. 整数计数增加 1

  4. 验证计数是否等于 9(项目数量之前的行)

  5. 如果 count 为 9,则循环访问该行显示的数据,在本例中为 2。

我未能在我的算法中建立数字 5。以下是解释为代码的算法:

 fstream = new FileStream(file, FileMode.Open);
            sReader = new StreamReader(fstream);
            invoice = new Invoice();
            List<string> s = new List<string>();
            List<Items> itms = new List<Items>();
            while ((line = sReader.ReadLine()) != null)
            {
                s.Add(line);
            }
            for (int i = 0; i < s.Count; i++)
            {
                count++;
                //Step 4
                if (count == 9)
                {
                  //Step 5. 
                }

我如何证明应该有两个对象,一个以第 11-13 行作为参数(s[11]、s[12]、s[13]),另一个以 14-16 为对象?

我怎么可能遍历文本文件中第 n:th 行之后的数据

像这样的事情怎么样:

var lines = File.ReadAllLines( file );          
// check number of lines here, make sure there are at least nine and
// that the count is a multiple of three
for( int i = 9; i < lines.Length; i += 3 )
{
    string desc = lines[i + 0],
           qty = lines[i + 1],
           price = lines[i + 2];
    // do work here (step 5)
}

还有更花哨的方法可以做到这一点,但这应该让你开始。