PDA

View Full Version : تکراری خوانده شدن اطلاعات با StreamReader



chaalesh
یک شنبه 26 اسفند 1386, 22:54 عصر
سلام
من با کد زیر یک صحفه رو میخونم ولی یک صحفه ثابت رو هر بار یه جوری میخونه
بعضی از قسمت های صحفه رو چند بار تکراری میخونه . اگه کد زیر موردی داره چه کدی برای اینکار پیشنهاد میکنید ؟ یا راه حلی برای حذف تکراری های این کد میدونید؟



StringBuilder sb;
char[] buf;
HttpWebRequest request;
HttpWebResponse response;
StreamReader Reader;
Stream resStream;
sb = newStringBuilder();
buf = newchar[8192];
request = (HttpWebRequest)
WebRequest.Create(Address);

response = (HttpWebResponse)
request.GetResponse();
resStream = response.GetResponseStream();
System.Text.Encoding ENCODE = System.Text.Encoding.GetEncoding(Encoding);
Reader = newStreamReader(resStream, ENCODE);
int count = 0;
do
{
count = Reader.Read(buf, 0, buf.Length);
if (count != 0)
{
string tempString = newstring(buf, 0, buf.Length);
sb.Append(tempString);
}
}
while (count > 0); HTML = sb.ToString();

chaalesh
یک شنبه 26 اسفند 1386, 22:57 عصر
بطور مثال اگه قراره 12345 رو بخونه 1233334444445 میخونه
البته اندازه فایل کوچک نیست ( یک صحفه کامل و بزرگ ) و این هنگام خواندن کل صحفه رخ میده.

raravaice
دوشنبه 27 اسفند 1386, 14:35 عصر
سلام

چه اجباری داری که کارو اینقدر سختش کردی؟!

ببین کد زیر میتونه مسئله شما رو حل کنه؟



Dim browser As WebClient = New WebClient
Dim enc As UTF8Encoding = New UTF8Encoding
Dim fileContents As String = enc.GetString(browser.DownloadData("http://site.com"))
WebClient توی فضای نامی system.net هست.

موفق باشید

SalarSoft
سه شنبه 28 اسفند 1386, 09:17 صبح
استفاده از WebClient راحت تره و بهتره ازش استفاده کنی

مشکل کد تو هم تو این قسمته:

string tempString = newstring(buf, 0, count);
از count استفاده نکرده بودی

chaalesh
سه شنبه 28 اسفند 1386, 11:59 صبح
تشکر از هر دوی شما دوستان خوبم


چه اجباری داری که کارو اینقدر سختش کردی؟!

آدمای بیسوادی مثل من اغلب این جوریند

من خودمم با استفاده از ReadToEnd تونستم این مشکل رو حل کنم
با تشکر