在文本文件中找到字符串后保存整数值

时间:2016-02-29 13:29:41

标签: c# streamreader

我有一个读取.HRM文件的程序,我希望它能够搜索文本文件,并在它所声明之后检索整数值。我把它读取文本文件用于其他事情,我只是想不出这个。如下所示:

if (line.Contains("Version="))
{
    //Get the integer after 'Version='
}

我不太确定如何获取此整数值并存储它。

HRM文件如下所示:

[Params]
Version=106
Monitor=34
SMode=111111100
Date=20130205
StartTime=15:46:20.0
Length=01:06:18.9
Interval=1
Upper1=0
Lower1=0
Upper2=0
Lower2=0
Upper3=180
Lower3=170
Timer1=00:00:00.0
Timer2=00:00:00.0

5 个答案:

答案 0 :(得分:4)

找到该行包含Version=

var number = int.Parse(line.Split('=')[1]);

答案 1 :(得分:2)

怎么样

int Version = int.Parse(line.Split('=')[1]);

答案 2 :(得分:1)

SELECT * FROM pg_stat_activity;

或者你可以做RegEx等等。

答案 3 :(得分:0)

您可以使用字符串方法IndexOfSubstring,例如使用此LINQ查询:

IEnumerable<String> versions =
    from line in File.ReadAllLines(@"filename.HRM") // go through all the lines
    let index = line.IndexOf("Version=") // returns -1 if the line doesn't contain "Version="
    where index >= 0 // return also those which contain it
    select line.Substring(index + "Version=".Length);    // return just the version after the '=' sign

foreach (string version in versions)
    Console.WriteLine(version);

如果您只想要一个,您也可以使用string version = versions.FirstOrDefault();

如果您想将其转换为int使用int.Parse

答案 4 :(得分:0)

如果您希望能够从任何字符串中提取数字,您可以使用它:

int versionNumber = int.Parse(Regex.Match(line, @"\d+").Value);