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

Saving an integer value after string is found in text file

我有一个读取 .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
var versionNumber = int.Parse(line.Replace("Version=", string.Empty));

或者您可以使用 RegEx 等等。

之后发现该行包含Version=

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

怎么样

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

您可以使用字符串方法 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

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

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