PDA

Просмотр полной версии : Парсинг нескольких элементов


Mr_R@NDOM
31.05.2011, 13:01
Почему он читает первую строчку и выходит с цикла ? где ошибка ?
private void button1_Click(object sender, EventArgs e)
{
this.button1.Enabled = false;
System.IO.FileStream fileStream = new System.IO.FileStream(@"c:\data.txt", System.IO.FileMode.Open);
System.IO.StreamReader streamWriter = new System.IO.StreamReader(fileStream, System.Text.Encoding.Default);
try
{
string s = streamWriter.ReadLine();
while (s.Length != 0)
{
string[] ss = s.Split('&');
//ss[0] < — Первая часть
//ss[1] < — вторая часть
//SendRequest(ss[0], ss[1]);
this.label5.Text = ss[0];
this.label6.Text = ss[1];
s = streamWriter.ReadLine();
}
}
finally
{
streamWriter.Close();
fileStream.Close();
System.IO.File.Delete(@"c:\data.txt);
}

this.button1.Enabled = true;
}

пробовал while (s != null) результат один и тот же.

Mr_R@NDOM
01.06.2011, 14:11
Вот так у меня заработало
string path = "data.txt";
System.IO.FileStream fileStream = new System.IO.FileStream(path, System.IO.FileMode.Open);
System.IO.StreamReader streamWriter = new System.IO.StreamReader(fileStream, System.Text.Encoding.Default);
try
{
label10.Text = "Отправка запроса удаления";
while (!streamWriter.EndOfStream)
{
string s = streamWriter.ReadLine();
string[] ss = s.Split('&');
if (counter == funs)
{
streamWriter.Close();
fileStream.Close();
System.Threading.Thread.Sleep(200);
System.IO.File.Delete("data.txt");
break;
}
label5.Text = ss[0];
label6.Text = ss[1];
//ss[0] < — Первая часть
//ss[1] < — вторая часть
SendRequest(ss[0], ss[1]);
counter++;
this.label2.Text = Convert.ToString(counter);
s = streamWriter.ReadLine();
}
}
finally
{

streamWriter.Close();
fileStream.Close();
System.Threading.Thread.Sleep(600);
System.IO.File.Delete("data.txt");
}

Hermein
03.06.2011, 16:36
а лучше цикл фор использовать, или foreach

Mr_R@NDOM
03.06.2011, 20:08
смотря какая ситуация, но чаще я использую фор