Сохранение целочисленного значения после того, как строка найдена в текстовом файле
У меня есть программа, которая читает .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 ответов:
После того, как вы обнаружите, что строка содержит
Version=
var number = int.Parse(line.Split('=')[1]);
var versionNumber = int.Parse(line.Replace("Version=", string.Empty));
Или вы можете сделать регулярное выражение и так далее.
Вы можете использовать строковые методы
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
.