我怎么可能遍历文本文件中第 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
验证计数是否等于 9(项目数量之前的行)
如果 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 为对象?
像这样的事情怎么样:
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)
}
还有更花哨的方法可以做到这一点,但这应该让你开始。