Ошибка разбора текстового файла C # - PullRequest
0 голосов
/ 03 января 2012

У меня есть текстовый файл, где каждая строка отделена \n, а каждое значение в строке - \t.

StreamReader sr = new StreamReader(dlg.FileName);
String ganzes = sr.ReadToEnd();
String[] allezeilen = ganzes.Split('\n');
string[] ssa = allezeilen[i].Split('\t');
foreach (string h in ssa)
{
   String verwendungszw = h.Contains("Verwendungszweck");
}

Теперь в цикле foreach я пытаюсь найти запись в ssa, которая содержит "Verwendungszweck". Хорошо, это легко. Но мне не нужна запись с "Verwendungszweck", мне нужна следующая.

Как я могу получить следующую запись?

Ответы [ 4 ]

5 голосов
/ 03 января 2012

Один из вариантов - использовать LINQ:

string value = ssa.SkipWhile(x => !x.Contains("Verwendungszweck"))
                  .ElementAtOrDefault(1);

Это, вероятно, самый простой способ сделать это, если вам нужно все value будет нулевым, если ни один из элементов ssa не содержит Verwendungszweck или если только последний элемент содержал.

1 голос
/ 03 января 2012

Ответ без проверки границ и проверки того, что строка поиска находится в массиве:

int pos = Array.IndexOf(ssa, "Verwendungszweck");
string value = ssa[pos + 1];
1 голос
/ 03 января 2012

Изменить цикл на

for (int i = 0; i < ssa.Length; i++) { 
    if (ssa[i].Contains("Verwendungszweck")) {
        String verwendungszw = ssa[i+1];
    }
}
0 голосов
/ 03 января 2012

Обратите внимание, что вы не определяете, что такое «я»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...