Я пытаюсь назначить переменные (var1-4
) для четырех частей моего второго (lines2
) массива.Назначение переменных массива
static void Main(string[] args)
{
string var1;
string var2;
string var3;
string var4;
string readContents;
using (StreamReader streamReader = new StreamReader(@"File.txt"))
{
readContents = streamReader.ReadToEnd();
string[] lines = readContents.Split('\r');
foreach (string s in lines)
{
string[] lines2 = s.Split('\t');
foreach (string s2 in lines2)
{
var1 = lines2[0];
var2 = lines2[1];
var3 = lines2[2];
var4 = lines2[3];
Console.WriteLine(var4);
}
}
}
}
На данный момент я имею вопрос, где var1
возвращает данные, которые я хочу, но консоль показывает больше значения 8х, чем на самом деле существует в моем файле. И я всегда получаю IndexOutOfRangeException
на каждые var
после первого во время выполнения. Не уверен, что вызывает одну из этих ошибок.
EDIT: Данные из текстового файла - отделенные друг от друга язычка:
2015-04-19 00:00:00 HostName.ErrorLevel IP Address "Error Message"
2015-04-19 00:00:00 HostName.ErrorLevel IP Address "Error Message"
2015-04-19 00:00:01 HostName.ErrorLevel IP Address "Error Message"
Вы можете разместить данные в текстовом файле, чтобы мы могли лучше идея, что происходит? – TomSlick
Вы 'foreach'-через каждую строку в' lines2', но никогда не используете 's2'. Вот почему вы слишком много пишете на консоли. Исключение, скорее всего, связано с тем, что в строке содержится менее 4 элементов, разделенных вкладкой. Это должно сделать обе проблемы очевидными. –
Если вы установили точку останова в первой строке и шаг за шагом отлаживаете, вы получаете ожидаемый результат на этих двух разбиениях? –