PDA

View Full Version : سوال: بررسی دوباره "دریافت ناقص اطلاعات در Inet"



abolfazl-z
چهارشنبه 31 خرداد 1391, 17:57 عصر
سلام
آقا این Inet اطلاعات را ناقص دریافت می کنه درسته با یه کدی دیگری اطلاعات را دریافت کرد ولی برنامه گیر میکنه!!!!

راه حل دیگری نیست؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

:متفکر::متفکر::متفکر::متفکر:: تفکر::متفکر::متفکر::متفکر::م فکر::متفکر::متفکر::متفکر::مت کر:

abolfazl-z
چهارشنبه 31 خرداد 1391, 18:54 عصر
آقا من یه چیز فهمیدم ولی نمی دونم راستش کار کیه؟؟؟

آقا این کنترل Inet از یک جا کنترل میشه !!!! بگو چرا ؟؟ چون که هر وقت به هر سایتی که Inet کنی نصف اش دریافت میشه ولی من به یک فایل txt اینت کردم با کمال تعجب همه رو دریافت کرد؟؟؟؟؟؟
:متفکر::متفکر::متفکر::متفکر:: تفکر::متفکر::متفکر::متفکر::م فکر::متفکر::متفکر::متفکر::مت کر::متفکر:

محسن واژدی
چهارشنبه 31 خرداد 1391, 20:31 عصر
آقا من یه چیز فهمیدم ولی نمی دونم راستش کار کیه؟؟؟

آقا این کنترل Inet از یک جا کنترل میشه !!!! بگو چرا ؟؟ چون که هر وقت به هر سایتی که Inet کنی نصف اش دریافت میشه ولی من به یک فایل txt اینت کردم با کمال تعجب همه رو دریافت کرد؟؟؟؟؟؟
:متفکر::متفکر::متفکر::متفکر:: تفکر::متفکر::متفکر::متفکر::م فکر::متفکر::متفکر::متفکر::مت کر::متفکر:
سلام علیکم
نه دوست عزیز اینطور نیست :)

اگه حجم اطلاعات زیاد باشد آنرا یکجا دریافت نمیکند، برای گرفتن مقداری از صفحه بارگذاری شده در هربارمیتوانیم از تابع GetChunk استفاده کنیم، کد زیر را در مادول فرم کپی کنید:

Private Sub Inet1_StateChanged(ByVal State As Integer)
Dim vData
Dim sData$

If State = icResponseCompleted Then
vData = Inet1.GetChunk(1024, icString)
sData = sData & vData
Do
DoEvents
vData = Inet1.GetChunk(1024, icString)
If Len(vData) = 0 Then Exit Do
sData = sData & vData
Loop

Text1.Text = sData
End If

End Sub

برای تست یک Command1 یک Text1 (با خاصیت Multiline=true) و یک کنترل Inet1 بر روی فرم قرار بدین
برای مثال:

Private Sub Command1_Click()
Call Inet1.Execute("http://nic.ir", "GET")
End Sub


پست زیر هم با استفاده از توابع api این کار را انجام داده است:
http://barnamenevis.org/showthread.php?225874-%D9%85%D8%B4%DA%A9%D9%84-%D8%AF%D8%B1-INET-(-%D8%AF%D8%B1%DB%8C%D8%A7%D9%81%D8%AA-%D9%86%D8%A7%D9%82%D8%B5-%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA)&p=1015696&viewfull=1#post1015696

البته روش های دیگری هم وجود دارد مانند استفاده از کنترل Webbrowser، Ms-XML و...

موفق باشید

abolfazl-z
چهارشنبه 31 خرداد 1391, 23:43 عصر
مرسی دوست عزیز
حرف شما متین فکر کنم شما متوجه منظور من نشدید.
منظور من استفاده از خود ابزار نیست بلکه استفاده از توابع.
توابع هست که برنامه را به هنگ کردن می اندازد.:متفکر:

راستی میگم این ابزار Inet چرا کد سایت ها را اولش رو دریافت می کند ولی یک فایل متنی را کامل دریافت میکنه(حجم اش زیاد) یعنی این کار خود مایکروسافت؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟؟؟؟؟؟؟

M.T.P
پنج شنبه 01 تیر 1391, 01:11 صبح
یعنی این کار خود مایکروسافت؟؟
آره یه جورایی :لبخند:

ببینید وقتی شما یک فایل رو درخواست می کنید هیچ پردازشی روی فایل مورد نظر
انجام نمیشه و مرتب دیتا برای شما ارسال میشه تا اینکه کل فایل رو دانلود می کنید.
اما تو دریافت کد سایت احتمال اینکه حتی هیچ دیتایی رو دریافت نکنید هست.
چون کد سایت ها اکثرا به زبان های php یا asp است که سرور باید پردازش کنه و برای
شما کد html نهایی رو ارسال کنه که همین پروسه ممکنه به هزار و یک دلیل ناموفق یا
گاهی نیمه تمام انجام بشه و دیتا بصورت ناقص برای شما ارسال شه.

مثال:
فرض رو بر این میگیریم که سرور یک سایت پس از بارگزاری نیمی از سایت، با توجه به محل قرارگیری
کد های سایت باید یک اسکریپت رو اجرا کنه (مثلا ارتباط با webgozar) برای اعلام آمار.
خب چنانچه سرور webgozar پاسخگو نباشه همین مشکل ممکنه ده الا پانزده ثانیه عملیات بارگزاری
سایت رو به تعویق بندازه و هزار و یک مشکل دیگه...

پس همیشه به دریافت کامل کد سایت دلخوش نباشید.

abolfazl-z
پنج شنبه 01 تیر 1391, 10:16 صبح
مرسی دوست عزیز .:M.T.P :. :لبخندساده:
بازم به نتیجه اصلی نرسیدم. یعنی همون بخش دریافت کد از طریق توابع که برنامه گیر نکنه؟
تازه یه چیزی، گفته های شما درسته ولی همون طور که گفتم کار خود مایکروسافت (با کنترل Inet یک سایت ساده رو هم Inet نمی کنه) چون با توابع راحت میشه کد سایت را دریافت کرد چون که دیگه نمیتونن تو توابع دست ببرن!
خوب یعنی هیچ راهی نیست که بشه برنامه مون گیر نکنه چطوری کنترل Inet برنامه نویسی شده که داده ها را یکجا دریافت نمی کنه و تا دریافت اطلاعات، خط در همون جا نگه داشته میشه. این خیلی جالب؟؟؟؟؟؟؟؟؟؟؟؟
:متفکر::متفکر::متفکر::متفکر:: تفکر: