Как извлечь из файла нужные строки?

183
20 мая 2019, 18:50

У меня есть файл в котором хранятся нужные строчки которые нужно извлечь, для извлечения одной части записи работает такой код:

string TLine = File.ReadAllLines(Text.df)[3].Split('"')[1];

Далее просто записываю найденные строки в файл.

И так же мне нужно прочитать остальные строчки ReadAllLines(Text.df)[11].Split('"')[1]

Их можно как-нибудь совместить, чтобы можно было прочитать все данные из нужной колонки [3].Split('"')[1] и [11].Split('"')[7]

Как можно прочитать все нужные мне данные из нужного столба?

Вот что хранится в файле:

"Logins"
{
  "895298918746"
  {
      "Name"        "UserName"
      "City"        "Moskow"
      "Date"        "12/10/18"
      "Num"         "14"
      "Timer"       "99999999"
  }
  "895283716281"
  {
    "Name"      "UserName"
    "City"        "Moskow"
    "Date"        "12/10/18"
    "Num"         "14"
    "Timer"       "99999999"
  }
}

Мне нужно получить значение 895298918746 и значение UserName из поля Name

И.т.д 895283716281 и значение UserName из поля Name

Answer 1

Пятница, вечер, самое время для регулярок...

var data = File.ReadAllText("test.txt");
var pattern = @"
^ \s*  "" (?'login'\d+) ""                \s*
^ \s*  {                                  \s*
^ \s*  ""Name""  \s* ""(?'Name'  .*? )""  \s*
^ \s*  ""City""  \s* ""(?'City'  .*? )""  \s*
^ \s*  ""Date""  \s* ""(?'Date'  .*? )""  \s*
^ \s*  ""Num""   \s* ""(?'Num'   .*? )""  \s*
^ \s*  ""Timer"" \s* ""(?'Timer' .*? )""  \s*
^ \s*  }
";
var options = RegexOptions.IgnorePatternWhitespace | RegexOptions.Multiline;
var matches = Regex.Matches(data, pattern, options);
var users = new List<User>();
foreach (Match m in matches)
{
    var user = new User
    {
        Login = m.Groups["login"].Value,
        Name = m.Groups["Name"].Value,
        City = m.Groups["City"].Value,
        Date = m.Groups["Date"].Value,
        Num = int.Parse(m.Groups["Num"].Value),
        Timer = int.Parse(m.Groups["Timer"].Value)
    };
    users.Add(user);
}

Класс-модель для хранения информации о пользователе:

public class User
{
    public string Login { get; set; }
    public string Name { get; set; }
    public string City { get; set; }
    public string Date { get; set; }
    public int Num { get; set; }
    public int Timer { get; set; }
}
READ ALSO
Экспорт ArcSegment в DXF.Arc

Экспорт ArcSegment в DXF.Arc

Как экспортировать ArcSegment в DXFArc? С # WPF

149
Построчное считывание из файла

Построчное считывание из файла

Не могу закинуть в массив string данные из файла

175
Как сделать в asp.net в .cshtml еще одну страницу?

Как сделать в asp.net в .cshtml еще одну страницу?

У меня есть несколько страниц у которых будет один и тот же header, как вынеся его в отдельный файл загрузить на те страницы??

144