在某个字符串后读取文本文件行

时间:2015-09-16 17:03:24

标签: c# .net regex asp.net-3.5

我正在使用 C#(。NET 3.5)阅读文本文件。加载文件逐行读取它一切都很好,但我想从一行的中心读取它。 .txt文件中的数据采用以下格式:

12-09-2015 00:05:98 140.25.1.37 00120915000598  7421 03456***89 13 94569

13-09-2015 00:08:90 140.25.1.37 00130915000890     7421 034564***654 94569

13-09-2015 00:12:85 140.25.1.37 00130915001285 7421 0345***95114   94569

14-09-2015 00:11:20 140.25.1.37 00140915001120   7421 0345****9814 94569

16-09-2015 01:20:73 140.25.1.37 00160915012073     7421 03456***7698 94569

我需要IP 140.25.1.37之后的数据 ..

每个文件中有超过 21000个条目,数据中心会生成100个文件。请建议我快速有效的任何事情。

谢谢

3 个答案:

答案 0 :(得分:0)

尝试将文件读入字符串并使用LastIndex方法:

string readText = File.ReadAllText(filepath);  
int i = readText.LastIndexOf("140.25.1.37");

您现在拥有最后发生的IP地址的索引,您可以从那里开始。

答案 1 :(得分:0)

由于您在每行的指定IP之后查找数据,因此请使用IP结尾的索引来获取剩余的子字符串。

string IP = "140.25.1.37 ";
string DataAfterIP = line.Substring(line.IndexOf(IP) + IP.Length);

答案 2 :(得分:0)

LINQ很有趣......

{ = { MERGEFIELD BAL } + 10.00 + { MERGEFIELD PAMT} - { MERGEFIELD POS } - 10.00 - { MERGEFIELD JAMT } \# "#, ##0.00" }