【发布时间】:2010-03-01 03:37:30
【问题描述】:
我有一个代表项目的文件,在一行中有项目 GUID,后跟 5 行描述该项目。
示例:
Line 1: Guid=8e2803d1-444a-4893-a23d-d3b4ba51baee name= line1
Line 2: Item details = bla bla
.
.
Line 7: Guid=79e5e39d-0c17-42aa-a7c4-c5fa9bfe7309 name= line7
Line 8: Item details = bla bla
.
.
我正在尝试首先访问此文件,以使项目的 GUID 符合使用 LINQ 提供的条件,例如其中 line.Contains("line1").. 这样我将获得整行,我将从那里提取 GUID,我想将此 GUID 传递给另一个应该“再次”访问文件的函数,找到该行(其中line.Contains("line1") && line.Contains("8e2803d1-444a-4893-a23d-d3b4ba51baee") 并从该行开始读取接下来的 5 行。
有什么有效的方法吗?
【问题讨论】:
-
你能提供更多细节吗?我不明白您是否在谈论单个文件...
-
我也想知道当我可以在 File.ReadAllLines() 上进行 LINQ 查询时是否可以获取行号,知道吗?
-
文件是否经常更改?如果没有,将其转换为 XML 可能是值得的,然后在您的实际程序中使用 XML。当然,您仍然必须处理一次文件才能进行转换,但之后您可以使用任何各种 XML 库。如果内容经常变化,每次转换文件可能不划算。
-
文件内容不变。它会像一个日志或什么的。但是,当我将它们显示在“aspx”页面中时,我仍然必须逐行浏览它们,因为我会将这些行链接到数据库条目“cmets”。
-
您是否可能试图避免阅读整个文件并寻找一种只阅读您需要的内容的方法?除非你能回答这样的问题,否则这会很困难:第 5 项的第一行第一个字节的确切索引是多少?
标签: linq file text-parsing