المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : التعامل مع الملفات (التحكم في أخطاء الادخال و الاخراج)


me&delphi
13-03-2009, 02:41 AM
أي برنامج يتعامل مع الملفات يمكن أن يصدر عنه أخطاء الادخال / الاخراج

والتي تظهر رسالة الخطأ و للتحكم في هده الرسائل في دلفي نستعمل التعليمتين {-sI} و {+sI}
{-sI} تقوم بتعطيل مراقبة الأخطاء من طرف Compiler و {+sI} تقوم بتفعيلها
الدالة IOResult تعود بقيمة تساوي الصفر في حالة عدم حدوث أي خطأ و بقيمة تخالف الصفر في حالة حدوثه وهده القيمة تبين نوع الخطأ

ولتفادي أي رسالة خطأ يكفينا و ضع الكود المحتمل و قوع الخطأ به بين التعليمتين و هدا المثال يوضح أكثر

procedure TForm1.Button1Click(Sender: TObject);
var F:TextFile;
Texte,Ligne:string;
begin
AssignFile(F,'H:\fssdf.Txt');
{$I-}
Reset(F);
{$I+}
if (IOResult = 0) then
begin
repeat
Readln(F,Ligne);
Texte:=Texte+Ligne+Chr(13)+Chr(10);
until Eof(F);
CloseFile(F);
Memo1.Text:= Texte;
end
else
MessageDlg('Ce ficher n'+Chr(39)+'existe pas',mtError,[mbOK],0);

end;

لم أستعمل Memo1.Lines.LoadFromFile() لأبين طريقة التعامل مع الملف

أما بالنسبة لباقي الدوال أو الاجراءات فهي موجودة مع الشرح و المثال في دلفي (AssignFile,Readln,CloseFile,Eof,Reset)

TF6M
13-03-2009, 01:40 PM
السلام عليكم

صحيح و تستعمل آلية خاصة في التعامل مع الملفات bin منها (ملفات صنف 3)

و مثالك أخي لم توضح كيفية إستثمار ioresult

me&delphi
14-03-2009, 12:33 AM
هده قائمة الأخطاء حسب القيمة التي ترجعها الدالة IOResult


dos errors :

2 File not found.
3 Path not found.
4 Too many open files.
5 Access denied.
6 Invalid file handle.
12 Invalid file-access mode.
15 Invalid disk number.
16 Cannot remove current directory.
17 Cannot rename across volumes.

I/O errors :

100 Error when reading from disk.
101 Error when writing to disk.
102 File not assigned.
103 File not open.
104 File not opened for input.
105 File not opened for output.
106 Invalid number.

Fatal errors :

150 Disk is write protected.
151 Unknown device.
152 Drive not ready.
153 Unknown command.
154 CRC check failed.
155 Invalid drive specified..
156 Seek error on disk.
157 Invalid media type.
158 Sector not found.
159 Printer out of paper.
160 Error when writing to device.
161 Error when reading from device.
162 Hardware failure.

kachwahed
21-03-2009, 12:41 AM
بارك الله فيك وجزاك خيرا
موضوع موجهات المعالج (Directive) مهم وشاسع.
شكرا كثيرا.