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

سؤال عن كيفية تعرف برنامج للملفات الموجوده فى نفس المجلد؟

بدأه amin_mu123 في 29 أغسطس 2008 · 14 رد · 1,168 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

بصراحه مشاركة الأخ

time1

فى موضوع قراءة الملفات قد شجعتنى أن أضع سؤالى هذا

نريد عمل برنامج يتعرف على الملفات الموجوده فى نفس الفولدر معه

ويعود بمصفوفه من السترينج تحتوى على اسماء تلك الملفات وامتداداتها

وشكرا لكم مقدما

اللهم صل على سيدنا محمد وعلى آله وصحبه وسلم

#2

API ولا STL ؟؟

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#3
اقتباس
API ولا STL ؟؟

ماذا تقصد أخى ؟هل يوجد طريقتين تقصد ؟

أى طريقه أخى الكريم

:wacko:

اللهم صل على سيدنا محمد وعلى آله وصحبه وسلم

#4

أقصد بدوال API الخاصة بويندوز ام دوال الـSTL الخاصة بـCpp ؟

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#5

اوكى أخى نبدأ بدوال api

وهل توجد فى مكتبه STL دوال تقوم بهذه الوظيفه؟

تحياتى ....

اللهم صل على سيدنا محمد وعلى آله وصحبه وسلم

#6

السلام عليكم

هذه الطريقه بـAPI

  1.  
  2. #include<iostream>
  3. #include<windows.h>
  4. #include <string>
  5. using namespace std;
  6.  
  7.  
  8.  
  9.  
  10. string allfile()
  11. {
  12. string tmp;
  13. WIN32_FIND_DATA FindFileData;
  14. HANDLE hFind;
  15. string hh;
  16. hFind=FindFirstFile("*.*",&FindFileData);
  17. if(hFind==INVALID_HANDLE_VALUE ) return " ";
  18. do
  19. {
  20. tmp.append( TEXT(FindFileData.cFileName)) ;
  21. tmp.append(";");
  22. }while (FindNextFile(hFind, &FindFileData) != 0);
  23.  
  24. FindClose(hFind);
  25. return tmp;
  26. }
  27. int main ()
  28. {
  29.  
  30. for(int i=0;i!= allfile().size();i++ )
  31. {cout<<allfile()[i];if(allfile()[i]==';')cout<<endl;}
  32.  
  33.  
  34. cin.get();
  35. return 0;
  36. }
  37.  
  38.  
  39.  
  40.  

تم تعديل هذه المشاركة بواسطة فهدالشلوي في 29 أغسطس 2008 في 14:51

tvquran_6.gif

#7

تستطيع عملها باستخدام امر system

  1.  
  2. #include <cstdlib>
  3. #include <iostream>
  4. #include<string>
  5. #include<cstring>
  6. using namespace std;
  7.  
  8. int main(int argc, char *argv[])
  9. {
  10. string s;
  11. char* d;
  12. char* folder;
  13.  
  14. d=strrchr(argv[0],'');
  15. size_t size=strlen(argv[0])-strlen(d);
  16. folder= new char(size+1);
  17. memset(folder,'&#92;0',size+1);
  18. strncpy(folder,argv[0],size);
  19. cout<<folder<<endl;
  20. s+="dir ";
  21. s+=folder;
  22.  
  23.  
  24. system(s.c_str());
  25. system("PAUSE");
  26. return EXIT_SUCCESS;
  27. }
  28.  
  29.  
  30.  

تم تعديل هذه المشاركة بواسطة فهدالشلوي في 29 أغسطس 2008 في 16:33

tvquran_6.gif

#8

مشكووور أخى فهد كثيرا

الطريقه الأولى اشتغلت تمام

ولكن الثانيه يعطينى خطأ فى السطر 17

وأكرر شكرى أخى الكريم

تم تعديل هذه المشاركة بواسطة amin_mu123 في 29 أغسطس 2008 في 16:09

اللهم صل على سيدنا محمد وعلى آله وصحبه وسلم

#9

سطر رقم 17 يظهر بشكل خاطئ لا اعلم لماذا:

memset(folder,'\0',size+1);
tvquran_6.gif

#10

أمين أخبرني هل عمل معك الكود بعد التعديل؟

tvquran_6.gif

#11

لا يا أخى لم يعمل

وأعطانى رسالة خطأ

post-153585-1220023486_thumb.gif

وعلى العموم البرنامج الأول يكفى

مشكوور

اللهم صل على سيدنا محمد وعلى آله وصحبه وسلم

#12

سوف اعيد صياغته ان شاء الله.

هو يعمل لدي بـ mingw .

tvquran_6.gif

#13

السلام عليكم

هذا الكود ولكن تحتاج بعد تصريفه الى تجربته في مجلد أخر غير الذي فيه لان المجلد الافتراضي حروفه طويله ولن يتعرف عليها

  1.  
  2. #include <cstdlib>
  3. #include <iostream>
  4. #include<string>
  5.  
  6. using namespace std;
  7.  
  8. int main(int argc, char *argv[])
  9. {
  10. string s;
  11. string d( argv[0]);
  12. string folder;
  13. size_t size= d.rfind("") ;
  14. folder=d.substr(0,size+1);
  15. folder.insert(0,"dir ");
  16. system(folder.c_str());
  17. system("PAUSE");
  18. return 0;
  19. }
  20.  
  21.  

tvquran_6.gif

#14
  1. #include <iostream>
  2. #include <windows.h>
  3. #include <string>
  4.  
  5. using namespace std;
  6.  
  7. string* GetFolderFiles(char* sPath)
  8. {
  9. WIN32_FIND_DATA FindFileData;
  10. HANDLE hFind;
  11. UINT nFiles = 0;
  12. string *res = 0;
  13.  
  14. hFind = FindFirstFile(sPath, &FindFileData);
  15. if(hFind!=INVALID_HANDLE_VALUE)
  16. {
  17. do
  18. if (!(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
  19. nFiles++;
  20. while(FindNextFile(hFind, &FindFileData));
  21. FindClose(hFind);
  22. }
  23.  
  24. hFind = FindFirstFile(sPath, &FindFileData);
  25. if(hFind!=INVALID_HANDLE_VALUE)
  26. {
  27. res = new string[nFiles+1];
  28. nFiles = 0;
  29. do
  30. if (!(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
  31. res[nFiles++] = FindFileData.cFileName;
  32. while(FindNextFile(hFind, &FindFileData));
  33. FindClose(hFind);
  34.  
  35. res[nFiles] = "\0";
  36. }
  37. return res;
  38. }
  39.  
  40. // --------------------------------------- //
  41. int main(int argc, char* argv[])
  42. {
  43. string *sFiles = GetFolderFiles("C:*.*");
  44.  
  45. if (sFiles)
  46. {
  47. UINT nFiles = 0;
  48. while(sFiles[nFiles][0])
  49. cout << sFiles[nFiles++] << endl;
  50. delete[] sFiles;
  51. }
  52.  
  53. cin.get();
  54. return 0;
  55. }
  56.  

تم تعديل هذه المشاركة بواسطة سمسوما في 30 أغسطس 2008 في 05:30

#15

جميل جدا هذا الكود .

ما شاء الله من اول مشاركاتك مبدع .

شكرا لك.

tvquran_6.gif

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…