تابع InternetReadFile که مبدا فراخوانی آن از فایل wininet در ویندوز میباشد.
فرم کلی :
Declare Function InternetReadFile Lib "wininet" (ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer
من برای اینکه بتونم مثلا از آدرس اینترنتی فلان فایلهای html اون رو دریافت کنم. باید از این تابع بالا استفاده کنم. ولی یه مشکل بزرگی هست و اون هم وجود محدودیت دریافت بایت بوسیله آرگومانهای sBuffer و lNumBytesToRead در تابع هستش.
مثلا من میخوام از سایت www.mkbo.com/index.asp کد html اون رو دریافت کنم.
برای اینکار باید مقدار sBuffer رو که از نوع رشته ای هست. با 1000 عدد کاراکتر خالی پرکرده و مقدار lNumBytesToRead رو هم که از نوع long هستش رو 1000 بدم تا با هم مچ بشن.
حالا اگه فایل مذبور رو بخوام با این حالت از اینترنت بگیرم. تنها 1000 کاراکتر اولش رو برخواهد گردوند.
البته من یه کلک زدم و مثلا 1000 رو کردم 90000 که دیگه فکر نکنم فایل html ای توی اینترنت باشه که 90000 بایت ظرفیت داشته باشه.
وقتی اینو میدادم. تنها تا 65535 کاراکتر از اون فایل رو بر میگردوند.
و با توجه به اینکه من قبلا در مورد بافرها اطلاعات بسیار کمی داشتم فهمیدم که اشکال از بافر هستش و یه جوری باید قبل از این قضیه اونو با کدی خاص و یا تغییر در کانکشن اینترنت افزایش داد ولی بلد نیستم چطوری
اینه اصل قضیه