следующего входного файлаExtract некоторых конкретный результата из текстового файла в C#
входного файл
a 00002098 0 0.75 unable#1 (usually followed by `to') not having the necessary means or skill or know-how; "unable to get to town without a car"; "unable to obtain funds"
a 00002312 0.23 0.43 dorsal#2 abaxial#1 facing away from the axis of an organ or organism; "the abaxial surface of a leaf is the underside or side facing away from the stem"
a 00023655 0 0.5 outside#10 away#3 able#2 (of a baseball pitch) on the far side of home plate from the batter; "the pitch was away (or wide)"; "an outside pitch"
И я хочу следующий результат для этого файла
OUTPUT
a,00002098,0,0.75,unable#1
a,00002312,0.23,0.43,dorsal#2
a,00002312,0.23,0.43,abaxial#1
a,00023655,0, 0.5,outside#10
a,00023655,0, 0.5,away#3
a,00023655,0, 0.5,able#2
Я пишу следующий код, чтобы извлечь такой результат выше
TextWriter tw = new StreamWriter("D:\\output.txt");
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text != null)
{
StreamReader reader = new StreamReader(@"C:\Users\Zia\Desktop\input.txt");
string line;
String lines = "";
while ((line = reader.ReadLine()) != null)
{
String[] str = line.Split('\t');
String[] words = str[3].Split(' ');
for (int k = 0; k < words.Length; k++)
{
for (int i = 0; i < str.Length; i++)
{
if (i + 1 != str.Length)
{
lines = lines + str[i] + ",";
}
else
{
lines = lines + words[k] + "\r\n";
}
}
}
}
tw.Write(lines);
tw.Close();
reader.Close();
}
}
, когда я изменить индекс, этот код дает следующую ошибку и не дает результат желания.
ОШИБКА
Индекс находился за пределами массива.
заранее.
Когда ты отлаживая ваш код, проверял, какие индексы вы используете, и размеры массивов, когда возникает исключение? – Oded
@Oded: я проверяю всю форму индекса 2-5, но даю тот же результат: –
'if (i + 1! = Str.Length)' является подозрительным. Что произойдет, если 'i == str.Length'? – Oded