{
WebClient client = new WebClient();
// Add a user agent header in case the
// requested URI contains a query.
client.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
Stream data = client.OpenRead("http://www.nseindia.com/marketinfo/indices/indexwatch.jsp");
StreamReader reader = new StreamReader(data);
string s = null;
int count = 0;
while (reader.Read()>0)
{
s = reader.ReadLine();
if (s.Contains("<td class=t1>"))
{
s= s.Remove(0, 18);
s = s.Remove(s.Length - 5);
count++;
if (count == 5)
break;
}
}
// MessageBox.Show(s);
data.Close();
reader.Close();
return s;
}
你能帮我跑这个......
答案 0 :(得分:2)
您正在调用消耗字符的reader.Read()
,然后然后您正在阅读一行。我建议你把你的循环改为:
string line;
while ((line = reader.ReadLine()) != null)
{
...
}
您还应该使用using
语句,以便即使抛出异常也会关闭所有内容。哦,我会使用string.Substring
代替string.Remove
。
我可能还会使用client.DownloadString
一次性获取所有内容而不是打开流。它更简单。