ورود

View Full Version : یک دانلودر به زبان دلفی



sara_aryanfar
دوشنبه 10 مرداد 1390, 11:56 صبح
با سلام من می خواستم ببینم چطوری می تونم برنامه ای بنویسم که یک فایل رو از یک لینک دانلود کنه و در ادرسی که ما میدیم ذخیره کنه و اطلاعات دانلود رو هم نمایش بده منظور چقدر از دانلود مونده حجم کل فایل اگه میشه یه مثال برام بزارید بسیار ممنون

vcldeveloper
دوشنبه 10 مرداد 1390, 16:59 عصر
ساده ترین حالتش که خودتون بخواید بنویسید اینه که از کلاس TDownloadURL موجود در یونیت ExtActs استفاده کنید. این کلاس رو می تونید هم به تنهایی استفاده کنید، هم اینکه به صورت یک Action از طریق ActionList یا ActionManager ازش استفاده کنید. یک خصوصیت URL و FileName داره، و یک رویداد OnDownloadProgress. هر زمان که این Action اجرا بشه، به طور خودکار فایل مورد نظر دانلود میشه و در مسیر مشخص شده توسط FileName ذخیره میشه.

راه دیگه اینه که یک کامپوننت IdHttp از تب Indy Client و یک کامپوننت IdAntiFreeze از تب Indy Misc روی فرم تان بیاندازید. در داخل کد خودتان متد Get مربوط به IdHttp را فراخوانی کنید:


var
FileName : string;
Stream : TFileStream;
URL : string;
begin
FileName := 'Put file destination on your local disk here.';
URL := 'Put URL of the file to be downloaded here.';

Stream := TFileStream.Create(FileName, fmCreate);
try
IdHTTP1.Get(URL, Stream);
finally
Stream.Free;
end;
end;

برای نمایش پیشرفت کار هم از رویدادهای OnWorkBegin, OnWork, OnWorkEnd مربوط به IdHttp می تونید استفاده کنید.


راه دیگه هم این هست که از انواع و اقسام کامپوننت و سورس کدی که در این رابطه در اینترنت منتشر شدند، استفاده کنید.

Delphi 2010
دوشنبه 11 مهر 1390, 20:11 عصر
آقای کشاورز این کدی که نوشتید سرعت دانلودش چطور هستش
اگر توجه کرده باشید به برنامه Internet Download Manager فایلی که می خواد دانلود کنه رو به چند قسمت تقسیم می کنه و اقدام به دانلود می کنه این کار رو باید چطوری انجام بدیم

vcldeveloper
دوشنبه 11 مهر 1390, 22:02 عصر
اگر توجه کرده باشید به برنامه Internet Download Manager فایلی که می خواد دانلود کنه رو به چند قسمت تقسیم می کنه و اقدام به دانلود می کنه این کار رو باید چطوری انجام بدیم
در یکی دو تاپیک دیگه توضیح دادم؛ اون برنامه ها یکی از روش های کارشان استفاده از Range در header های HTTP هست، که مشخص میکنه از یک فایل چه بخشی باید توسط هر اتصال دریافت بشه.

Mask
جمعه 26 اسفند 1390, 15:03 عصر
کلاس TDownloadURL موجود در یونیت ExtActs استفاده کنید.
با عرض پوزش . اسم یونیت ExtActs صحیح نیست.صحیحش ExtActns هست.

بهروز عباسی
پنج شنبه 03 فروردین 1391, 05:12 صبح
اینم یه نمونه دانلودر با دلفی باDelphi XE هم تست شده آدرس فایلو+محل ذخیره سازی بهش میدی تمومه میزان پیشرفت روند دانلود هم نمایش میده این عکس + لینک دانلـــــــــــــود (http://www.programming-co.com/programming/programming-with-delphi/sourcecodedelphi/4-%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF-%D8%B3%D9%88%D8%B1%D8%B3-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-EasyDownloadManager.html)
84530

ali_reza_nazari
چهارشنبه 04 مرداد 1391, 23:21 عصر
سلام
آقای کشاورز میشه کمی در مورد این روش توضیح بدید؟
ممنون می شم




نقل قول: یک دانلودر به زبان دلفی


اگر توجه کرده باشید به برنامه Internet Download Manager فایلی که می خواد دانلود کنه رو به چند قسمت تقسیم می کنه و اقدام به دانلود می کنه این کار رو باید چطوری انجام بدیم


در یکی دو تاپیک دیگه توضیح دادم؛ اون برنامه ها یکی از روش های کارشان استفاده از Range در header های HTTP هست، که مشخص میکنه از یک فایل چه بخشی باید توسط هر اتصال دریافت بشه.

Felony
پنج شنبه 05 مرداد 1391, 03:57 صبح
آقای کشاورز میشه کمی در مورد این روش توضیح بدید؟
http://stackoverflow.com/questions/2963246/download-pause-and-resume-an-download-using-indy-components
http://www.west-wind.com/weblog/posts/2004/Feb/07/Using-HTTP-Ranges-to-resume-resume-aborted-downloads

بهروز عباسی
پنج شنبه 09 شهریور 1391, 17:27 عصر
درود به همه :لبخند:
امروز این نمونه رو گیر آوردم (البته توی XE2 کمی مشکل داره،
اما فکر کنم برای کسانی که قصد نوشتن چنین برنامه های رو دارند نمونه خوب و کاملی باشه و مفید واقع بشه.
این صفحه حاوی توضیحات.
GetFast-HTTP download manager with segmented download and resume (http://cc.embarcadero.com/item/17604)

سورس هم آپ کردم که دوستان راحت باشن.:کف:

موفق باشید.

Mask
پنج شنبه 09 شهریور 1391, 18:55 عصر
فقط برای ایده گرفتن خوبه. برنامه به درستی کار نمیکنه.برای تبدیلش ورژن های بالاتر از 7 هم کار خیلی سختیه.

N30TheM4TRIX
شنبه 11 شهریور 1391, 21:16 عصر
سلام

فقط برای ایده گرفتن خوبه. برنامه به درستی کار نمیکنه.برای تبدیلش ورژن های بالاتر از 7 هم کار خیلی سختیه.
اگه ممکنه برنامه رو به XE2 تبدیل کنید.

serojjamali
چهارشنبه 17 اردیبهشت 1393, 13:42 عصر
اقای
بهروز عباسی (http://barnamenevis.org/member.php?231262-%D8%A8%D9%87%D8%B1%D9%88%D8%B2-%D8%B9%D8%A8%D8%A7%D8%B3%DB%8C)
http://barnamenevis.org/images/statusicon/user-offline.png لینک دانلود خراب شده میشه یک جای دیگه برنامرو آپلود کنید

با تشکر