在文本文件中找到字符串后保存整数值
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]);
您可以使用字符串方法 IndexOf
和 Substring
,例如这个 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);
我有一个读取 .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]);
您可以使用字符串方法 IndexOf
和 Substring
,例如这个 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);