التخلص من رساله مزعجه
#1
السلام عليكم

الرساله التى توجد فى اسفل الصوره ما هو سببها ومذا تعنى وكيف يمكن التخلص منها
استعملت داله لحساب حجم الملف
كود :
implementation {$R *.dfm} function size(f1: string):integer; var f:file of byte; handle: integer; results:string; begin handle := FileOpen(f1, fmOpenRead); if handle = -1 then results := 'Unable to open file ' + f1 else try AssignFile(f,f1); read(f); result:=FileSeek(handle,int64(0),2); finally FileClose ( handle ); end; end; procedure TForm1.Button1Click(Sender: TObject); var k:integer; begin if OpenDialog1.Execute then begin k:=size(OpenDialog1.FileName); ShowMessage(IntToStr(k)); end; end; end.
رسالة الخطا
[Avertissement] Unit1.pas(47): La valeur de retour de la fonction 'size' peut être indéfinie
كود :
http://www6.0zz0.com/2011/06/02/00/650485068.png
الرد
#2
وعليكم السلام
جربت الكود يعمل طبيعي


الملفات المرفقة
.rar   filesize.rar (الحجم : 1.18 ك ب / التحميلات : 8)
الرد
#3
نعم اخى الكود يعمل لكن تلك الرسال تخرج فى الاسفل غيرت فى الداله قليلا تخلصت منها لكن لا زلت لا اعرف ماذا يعنى ذلك الخطا
كود :
function size(f: string):integer; var handle: integer; begin handle := FileOpen(f, fmOpenRead); if handle = -1 then result:=0 else begin try result:=FileSeek(handle,int64(0),2); finally FileClose(handle); end; end; end; {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var k:integer; begin if OpenDialog1.Execute then begin k:=size(OpenDialog1.FileName); ShowMessage(IntToStr(k)); end; end; end.
الرد
#4
هكذا وصلت الى النتجه التى كنت ابحث عنها بتغيير الاحاث فى button
كود :
implementation uses Math; function size(f: string):integer; var handle: integer; begin handle := FileOpen(f, fmOpenRead); if handle = -1 then result:=0 else begin try result:=FileSeek(handle,int64(0),2); finally FileClose(handle); end; end; end; {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var k:integer; begin k:=0; if OpenDialog1.Execute then k:=size(OpenDialog1.FileName); if k=0 then begin ShowMessage('no file') end else ShowMessage(IntToStr(k)); end; end.
الرد
#5
وعليكم السلام ورحمة الله
رسالة الانذار التي ظهرت مفادها أن ناتج الدالة قد يكون غير محدد
لأن المتغير Result داخل التابع قد لا يأخذ أي قيمة لأنه محجوز ضمن الحيز Try/Finally
كود :
else [COLOR="Red"]try [/COLOR]AssignFile(f,f1); read(f); [color=Red]result[/color]:=FileSeek(handle,int64(0),2);
لتفادي هذا الانذار، قم بتهيئة الناتج قبل الحيز Try/Finally
PHP كود :
Result := -1;
Try
...
Result := ...;
Finally
...
end; 
حجم الملف انظر هنا.
بالتوفيق.
الرد
#6
مشكور اخى على الرد الفكره وصلت
الرد
#7
لا شكر على واجب خدمتك أخي abdeslem1982 أهلا وسهلا بك Smile
فقط ساعدنـا على تنظيم المنتدى بإفراد موضوع لكل سؤال والبحث في المنتدى قبل ذلك...
ابحث عن TComPort
بالتوفيق.
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم