الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

جلب الملفات خصوصا للاخ sum

مغلق
بدأه بوفهد في 6 نوفمبر 2001 · 5 رد · 1,096 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

السلام عليكم

ابي اعرف شنو الغلط في الكود هذا

وليش ما يشتغل معاي

وشنو الحل

Uses

UrlMon;

function DownloadFile(URL, Path: string): Boolean;

begin

try

Result := UrlDownloadToFile(nil, PChar(www.test.com/tet.exe), PChar(c:windows), 0, nil) = 0;

except

Result := False;

end;

end;

:confused:

وشكرا

#2

بسم الله الرحمن الرحيم

الاخ بو فهد

ترددت كثيرآ قبل ان قرر الرد على سؤالك لتخصيصك السؤال لفرد بعينه.

على كل حال ساحاول الاجابة على السؤال

يوجد في الـ code خطائين:

1- عدم وضع ال URL و اسم الملف وهما عباره عن string بين ' ' ,وأظن أنه خطأ غير مقصود منك .:)

2-قمت بكتابة الـ path فقط للملف الذي تريد حفظه ولم تكتب اسم الملف.

وهنا الـ CODE بعد التعديل و إضافة thread :

الـ CODE مجرب على windowsxp delphi 6.0 يقوم بجلب ultra edit32

أضف ما يلي الى private in TForm defination 
private
 procedure ThreadsDone(Sender: TObject);
أضف ما يلي بعد تعريف TForm 
type
  BuFahedThread=class(TThread)
  protected
   procedure Execute;override;
  end;

  var
hMutex: THandle = 0;
const
  // URL Location
  SourceFile = 'http://download.sohu.com/disk2/it/new/update/0606/uedit32.zip';
  // Where to save the file
  DestFile   = 'C:uedit32.zip';
....
uses
UrlMon;
function DownloadFile(URL, Path: string): Boolean;
begin
try
Result := UrlDownloadToFile(nil, PChar(url), PChar(path), 0, nil) = 0;
except
Result := False;
end;
end;

procedure BuFahedThread.Execute;
begin
  FreeOnTerminate := True;
  OnTerminate := Form1.ThreadsDone;
if WaitForSingleObject(hMutex, INFINITE) = WAIT_OBJECT_0 then
  begin
    if DownloadFile  (SourceFile, DestFile) then
  begin
    ShowMessage('Download succesful!');
  end
  else
    ShowMessage('Error while downloading ' + SourceFile)
  end;
  ReleaseMutex(hMutex);
end;
procedure TForm1.ThreadsDone(Sender: TObject);

begin
     CloseHandle(hMutex);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
 hMutex := CreateMutex(nil, False, nil);
 BuFahedThread.Create(False);
end;

هناك حتى الأحلام أصبحت ممنوعة ...

إنه لعار أن ننتمي لهكذا أوطان ... لكن ... ربما العار أن نكون نحن أبناء لتلكم أوطان .. من يدري ؟!!

ليعلم أولئك ... إنّ الشعوب إنْ هي استيقظت تسحق ظُلامََهَا ...

There, even in dreams u r wanted

To be a programmer, how a nice dream it was

Leaving ...

أعيدوا لإسمي لونه المفضل

#3

بسم الله الرحمن الرحيم

مشكور يا اخي tmaaa

والله يا اخي العزيز ما اشتغل معاي

ومره ثانيه مشكور:D

#4

الـ Code شغال عندي :)

أين المشكلة عندك ؟

بعض الارتباطات لا ينفع الـ code معها . الـ code الذي نشرته قام بالتنزيل .

أرجو توضيح المشكلة التي واجهتها .

هناك حتى الأحلام أصبحت ممنوعة ...

إنه لعار أن ننتمي لهكذا أوطان ... لكن ... ربما العار أن نكون نحن أبناء لتلكم أوطان .. من يدري ؟!!

ليعلم أولئك ... إنّ الشعوب إنْ هي استيقظت تسحق ظُلامََهَا ...

There, even in dreams u r wanted

To be a programmer, how a nice dream it was

Leaving ...

أعيدوا لإسمي لونه المفضل

#5

بسم الله الرحمن الرحيم

اخي العزيز بو فهد مشكلك بسيطه جداً

طبعاً الخطأ هو انك ماوضعت كلمة http:// قبل العنوان الذي وضعته :)

وثانياً حبت انبه عن شيء بسيط وهو انك بطريقتك هذه قمت بالتغيير بال Function

وهذا خطأ فيجب عليك استدعاء ال Function وليس التغيير فيه

مثال للتوضيح

هذا الكود :

Uses

UrlMon;

function DownloadFile(URL, Path: string): Boolean;

begin

try

Result := UrlDownloadToFile(nil, PChar(URL), PChar(Path), 0, nil) = 0;

except

Result := False;

end;

end;

[/Cod2]

هذا هو استدعاء الكود :

[code]

DownloadFile('http://www.test.com/tet.exe','c:windows');

[/Cod2]

ارجوا ان تكون فهمت مااقصد

واما بالنسبة للأخ tmaaa

فأشكره كثيراً على حهوده

وما بالنسبة لبقية الأعضاء فأنا اعتذر منهم عن انقطاعتي

وفي الختام تقبلوا تحياتي اخوكم SUM

#6

السلام عليكم :)

اسف على التأخير

ومشكورين على الرد واخييراً اشتغل معاي الكود

وشكرا :)

هذا الموضوع مغلق.

مواضيع مشابهة