Как получить доступ к отдельным строкам в текстовом файле - PullRequest
0 голосов
/ 19 июня 2019

Мне нужен способ доступа к значениям столбцов (разделенных \ t) из раздела текстового файла.

В текстовом файле есть разделы, разделенные "*".Я мог бы найти эти разделы, используя простой код ниже.

 var text = File.ReadAllText("PIP_geometries.csv");

 var FlowlineSections = text.Split('*');

Внутри каждого раздела есть 3 столбца с заголовками и несколько строк данных.Я хочу получить эти значения.

Например:

*

Name  Country  
John  USA

Jack  Russia

Jim   USA

*

Name  Country

Ross  NZ

Moss  UK

В приведенном ниже коде весь раздел после разбиения выглядит как одна строка.Как я могу получить "США" для "JIM"

Ответы [ 3 ]

0 голосов
/ 19 июня 2019

После первого разделения ваша первая строка должна выглядеть примерно так:

Name\tCountry\nJohn\tUSA\nJack\tRussia\nJim\tUSA

Таким образом, вам нужно разделить его на \n, чтобы получить каждую отдельную строку, а затем для каждой строки (пропуская первую строку, если вам не нужны заголовки), вам нужно будет разделить ее на \t. Как вы справляетесь с этими результатами, зависит от вас. Вы можете превратить его в список списков строк, словарь или заполнить какой-либо тип объекта, который вы создаете.

0 голосов
/ 19 июня 2019

так что один из способов сделать это будет

var secondsplitter = new [] {"\r\n","\n","\r"};
@"*

Name  Country  
John  USA

Jack  Russia

Jim   USA

*

Name  Country

Ross  NZ

Moss  UK"
    .Split('*')
    .Where(x => !String.IsNullOrWhiteSpace(x))
    .Select(x => x.Split(secondsplitter,StringSplitOptions.RemoveEmptyEntries))

, что дает

Output

0 голосов
/ 19 июня 2019

попробуйте это var FlowlineSections = text.Split ('*') [1] .Split (vbTab);

...