السلام عليكم..
الحقيقة قرأت أحد دروس الأخ JASS و كان الدرس رائع عن الدوال ..و بدأت فيه حرفا
حرفا ..و من هذه الدوال دوال التعامل مع الملفات و قد استطعت ن أفهم البنية المجملة و لكن
هناك بعض المتطرفات أحد أن أعلم عنها :
الكود الأول
HANDLE hFile;
DWORD nbyte;
hFile=CreateFile
("D:\\file.txt",GENERIC_READ|GENERIC_WRITE,FILE_SHARE_
READ|FILE_SHARE_WRITE
,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
if(hFile!=INVALID_HANDLE_VALUE)
WriteFile (hFile,(LPCVOID)"Arab-team",9,&nbyte,NULL);
CloseHandle (hFile);كود لإنشاء ملف نص و أريد أن أسأل عن :
1- ما هو هذا المتغير DWORD ..يبد أنه متغير حرفي.
2- في البارامتر الثاني لماذا كتبنا (LPCVOID) قبل البيانات.
3- في البارمتر الثالث لماذا استخدما 9Bytes ولم نستخدم أكثر أو أقل.
و الآن هذا الكود :
HANDLE hFile;
DWORD nbyte;
char buff[10];
ZeroMemory(buff,10); //تصفير مصفوفة حروف
hFile=CreateFile ("D:\\file.txt",GENERIC_READ,0
,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
if(hFile==INVALID_HANDLE_VALUE) //إذا كان المقبض خطأ
strcpy(buff,"Error"); //نفذ الكود وهو نقل كلمة خطأ لمصفوفة الحروف
else // وإذا كان غير ذلك نفذ دالة القرائة
ReadFile (hFile,buff,9,&nbyte,NULL);
MessageBox (NULL,buff,NULL,NULL); // إظهار نتيجة القرائة
CloseHandle (hFile);4- ZeroMemory ما هذه الدالة بالضبط .
5-لقد لاحظنا أن الأخ حمل للمصفوفة كلمة Error في حال حدث خطأ و لكن لو لم يحدث كيف
استطاعت الدالة أن تحمل النص الموجود في الملف إلى داخل المصفوفة ..لأن الأمر Strcpy
لم يستخدم إلا مرة واحدة ..
6- هل نستطيع تحميل النص من الملف مباشرة بدون مصفوفة ..لأننا لا نعرف ما هو النص
الموجود في الملف..و بدون استخدام مصفوفة مؤشرات ..
و سؤال على الماشي :lol: هل نستطيع استخدام هذه الدالة لإنشاء ملفات الصور أيضا.
و شكرا لكم.الأسئلة ليست كثيرة أليس كذلك :D ؟