السلام عليكم ورحمة الله وبركاته
هل يوجد احد يساعدني فيي تتبع هذا الكود
انا لا اعلم الا القليل ب السي ,,
عرفت وظائف جميع الاوامر المستخدمة
ولكن الذي لا اعلمه بالكود كيف اتتبع قيم x وتسلسلها
وداخل ال while ماذا تكون قيمة done في البداية حتى يدخلها
السلام عليكم ورحمة الله وبركاته
هل يوجد احد يساعدني فيي تتبع هذا الكود
انا لا اعلم الا القليل ب السي ,,
عرفت وظائف جميع الاوامر المستخدمة
ولكن الذي لا اعلمه بالكود كيف اتتبع قيم x وتسلسلها
وداخل ال while ماذا تكون قيمة done في البداية حتى يدخلها
السلام عليكم
مرحبا أختي :)
مستقبلا, عليك بكتابة الكود ووضعه في الوسم الخاص به.
بالنسبة لسؤالك, الدالة findfirst تبحث عن الملفات الموجودة داخل مجلد معين و تأخذ ثلاث وسائط, الأول هو الصيغة العامة للملف (اسمه و امتداده), الوسيط الثاني عبارة عن مؤشر لبنية من النوع ffblk, هذه البنية تحتوي على خصائص البحث مثل التاريخ, الحجم, الإسم, الطبيعة (مجلد أم ملف ؟), تاريخ آخر تعديل وهكذا .. الوسيط الثالث لم أعد أتذكر فائدته :D
و هذه لائحة بعناصر البنية ffblk :
struct ffblk
{
char ff_reserved[21]; // reserve par DOS
char ff_attrib; // attribut a trouver
int ff_ftime; // temps fichier
int ff_fdate; // heure fichier
long ff_fsize; // taille fichier
char ff_name[13]; // nom fichier
};إذا عثرتْ الدالة findfirst على ملف في المجلد الذي تبحث فيه, ستكون قيمة المتغير done تساوي صفر و عند انتهاء البحث ستعيد الدالة findnext القيمة -1.
الكود التالي يعرض لك المسار الذي يتواجد فيه البرنامج بالإضافة إلى أسماء و أحجام جميع الملفات التي يبدأ اسمها بالحرف C :
#include <dir.h>
#include <stdio.h>
#include <string.h>
char *current_directory(char *path)
{
strcpy (path, "X:\\");
path[0] = 'A' + getdisk();
getcurdir (0, path+3);
return (path);
}
int main()
{
struct ffblk ffblk;
char curdir[MAXPATH];
int done;
current_directory(curdir);
printf("Repertoire : [ %s ]\n", curdir);
printf("Affichage des fichiers : \n");
done = findfirst("c*.*",&ffblk,0);
while(done != -1)
{
printf("\t%s\t%u (octets)\n", ffblk.ff_name,ffblk.ff_fsize);
done = findnext(&ffblk);
}
return 0;
}مُخرجات الكود :
أرجو لك التوفيق.
تم تعديل هذه المشاركة بواسطة أحمد الشنقيطي في 30 يونيو 2012 في 20:42 — السبب: إضافة بسيطة إلى الكود :)
C++ and Java, say, are presumably growing faster than plain C, but I bet C will still be around. ― Dennis Ritchie
~OoO~________--------------------------------------------________~OoO~
من مواضيعي :