【发布时间】:2019-09-05 06:58:19
【问题描述】:
我有一个 txt 文件,它是从类似这样的软件中获得的。
----------------------------------------------------------------------------
XXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXX
----------------------------------------------------------------------------
XXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXX
-- YYYYYYYYYYYYYY ----------------------------------------------------------
XXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXX
-- YYYYYYYYY ---------------------------------------------------------------
(1) AAAAAAAAAAAAAA
(2) BBBBBBBBBBBBBB
(3) CCCCCCCCCCCCCC
----------------------------------------------------------------------------
(1) AAAAAAAAAAAAAA
----------------------------------------------------------------------------
Model : AAAAAAAAAAAAAA
Firmware : XXXXXXXXXXXXXX
Serial Number : 00000000000000
Disk Size : 999 GB
-- XXXXXXXXXX --------------------------------------------------------------
我只需要从这部分读取数据:
----------------------------------------------------------------------------
(1) AAAAAAAAAAAAAA
----------------------------------------------------------------------------
Model : AAAAAAAAAAAAAA
Firmware : XXXXXXXXXXXXXX
Serial Number : 00000000000000
Disk Size : 999 GB
-- XXXXXXXXXX --------------------------------------------------------------
我试过这样的 StreamReader:
StreamReader sw = new StreamReader(txtFile);
while (!sw.EndOfStream)
{
string line = sw.ReadLine();
if (line.Contains("(1)"))
{
OtherFunction(line);
}
}
sw.Close();
但这并不好。我不能使用只能从第 20 行到第 23 行读取的函数。我需要对 SteamReader 说,他必须从包含 ------------------ 的行读取到包含 -- XXXXXXXXXX ---- 的行
任何帮助将不胜感激。 谢谢!
【问题讨论】:
-
您可以使用this 解决方案。不过我猜这个方法也会把txt文件加载到内存中。
-
为什么对这个问题投反对票?
标签: c# text streamreader