C# 在C中查询txt文件中的特定行#
我有以下文本文件: 我想做一个特定的查询,从特定的一分钟开始提取行,并将它们放在一个数据网格中,该数据网格有一个对象(字符串时间戳、字符串计算机名、字符串ID、字符串事件)作为其数据字段 例如:假设我想显示从10:10:00到当前时间的所有行 如何测试每一行以确定它是否符合我的时间要求?使用以下方法:C# 在C中查询txt文件中的特定行#,c#,.net,linq,C#,.net,Linq,我有以下文本文件: 我想做一个特定的查询,从特定的一分钟开始提取行,并将它们放在一个数据网格中,该数据网格有一个对象(字符串时间戳、字符串计算机名、字符串ID、字符串事件)作为其数据字段 例如:假设我想显示从10:10:00到当前时间的所有行 如何测试每一行以确定它是否符合我的时间要求?使用以下方法: var queryResult = File.ReadAllLines("<yourFile.txt>").Skip(1).TakeWhile(x => (DateTime.P
var queryResult = File.ReadAllLines("<yourFile.txt>").Skip(1).TakeWhile(x => (DateTime.Parse(x.Substring(0, 19), CultureInfo.InvariantCulture).TimeOfDay.TotalSeconds) > (new TimeSpan(10, 10, 0).TotalSeconds)).ToArray();
现在,您可以从
queryResult
访问单个数据,您对文件的结构有哪些信息?字段选项卡是分开的吗?你有没有尝试过解决你的问题,或者只是在等待有人为你写一个解决方案?字段选项卡各有12行。我真的不知道我是如何处理这个查询的。不要费心解析文本文件,在C#中使用Microsoft.VisualBasic.FileIO.TextFieldParser。我建议使用,以避免一次将所有内容读取到内存中。那么您就不需要拆分
either@Patrick我知道该方法存在,但我在使用它时遇到了几个问题。@FᴀʀʜᴀɴAɴᴀᴍ 我很想听听你看到了什么样的问题。可能会帮助其他人。老实说,这些都是关于行尾的小问题,这花费了我很多时间和思考来解决。通过使用ReadAllLines
,这显然是一个性能提升。在帖子中添加了它。
var queryResult = File.ReadAllLines("<yourFile.txt>")
.Skip(1)
.TakeWhile(x => (DateTime.Parse(x.Substring(0, 19), CultureInfo.InvariantCulture).TimeOfDay.TotalSeconds) > (new TimeSpan(10, 10, 0).TotalSeconds))
.Select(x => new { TimeStamp = DateTime.Parse(x.Substring(0, 19), CultureInfo.InvariantCulture), CoumputerName = x.Substring(21, 10), ID = x.Substring(45, 4), Event = x.Substring(59)})
.ToArray();