إعـــــــلان

تقليص
لا يوجد إعلان حتى الآن.

مشروع ربط شريط progress بعملية فك ضغط ملف zip أو rar بشكل صحيح

تقليص
هذا الموضوع مغلق.
X
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • مشروع ربط شريط progress بعملية فك ضغط ملف zip أو rar بشكل صحيح


    أهلا بكم اخواني الكرام .. هذا المشروع يوضح كيفية ربط شريط ال progress بعملية فك ضغط ملف rar أو zip بمعنى أن يظهر للمستخدم شريط progress يوضح له مدى تقدم عملية فك ضغط الملفات


    ونظرا لطول الموضوع وتعقده قليلا أحب أن أنوه إنه إذا كنت تهتم فقط بتحميل الملفات المفتوحه فإليك رابط التحميل

    http://www.mediafire.com/?kijj1ij5b3dyfzu

    أما إذا كنت تهتم بفهم الفكره فتابع الموضوع ..


    في البدايه ظهرت معي مشكله عندما فكرت في عمل شريط progress يوضح مدى تقدم عملية فك الضغط عن الملفات , فلاحظت شئ غريب وهو أن الأكواد تقوم أولا بفك الضغط وبعد الإنتهاء تماما من الفك تقوم بتحريك شريط ال progress أي لا فائدة لشريط ال progress من الناحيه الفعليه

    مبدئيا كنت أستخدم هذا الكود لتحريك شريط ال progress مع عملية فك الضغط

    كود:
    zip_contents = Zip.GetContents("Data\\Docs\\file.zip", true);
    count = Table.Count(zip_contents);
    for i=1, count do 
    Progress.SetCurrentPos("Progress1", i*100/count);
    Zip.Extract("Data\\Docs\\PNG.zip", {zip_contents[i]}, _DesktopFolder, true, true, "", ZIP_OVERWRITE_ALWAYS, nil);
    end
    ولكن كما وضحت سابقا أنه لا يحرك شريط ال progress إلا بعد أن ينتهي من عملية فك الضغط فعليا


    طيب لماذا ظهرت هذه المشكله ..


    الفضل لله أولا ثم لأخي النصل القاطع وضح لي نقطه وهي كالتالي :

    نفترض أن لديك ملف مضغوط اسمه file.zip و به 10 ملفات ومن ضمنهم مجلد اسمه ( new folder ) ويوجد داخله أيضا مجموعه من الملفات

    فعندما يقوم البرنامج بفك الضغط بإستخدام الكود السابق سوف يعتبر المجلد ( new folder ) كأنه ملف واحد ( على الرغم انه سوف يقوم بفك الملفات التي بداخله و بشكل عادي ) ولكن هذا سوف يسبب مشكلة تأخر تقدم شريط ال progress


    طيب .. لو لاحظنا في هذا الكود الخاص بمعرفة محتويات الملف المضغوط .. سنجد به حقل إختياري ( إذا كنت تريد أن تشمل المجلدات ام لا )

    كود:
    Zip.GetContents("Data\\Docs\\file.zip", true);
    وهنا true أي اشمل المجلدات

    و false أي لا تشمل المجلدات

    طيب إذا كنت تريد أن تكون عملية تقدم شريط progress صحيحه ودقيقه عليك أن تستخدم نتيجة كلا الحالتين .. سأقول لك لماذا


    لأنك لو استخدم الطريقه الأولى فقط وهي أن تشمل المجلدات

    سوف تحدث مشكله وهي

    1 - حلقات التكرار ستزيد بعدد المجلدات ( يعني لو الملف المضغوط يحتوي على 10 ملفات و 5 مجلدات فإن حلقات التكرار ستكون 15 حلقه ) وهذا يسبب مشكله في تقدم شريط ال progress

    2 - المشكله التي تحدثنا عنها وهي فك الضغط أولا ثم تحريك شريط ال progress



    ولو استخدمت الطريقه الثانية فقط وهي أن لا تشمل المجلدات

    سوف تحدث مشكله وهي

    1 - الملفات التي سوف يتم فك ضغطها ستنقص بعدد المجلدات بمعنى ( لو الملف المضغوط يحتوي على 10 ملفات و 3 مجلدات سوف يتم فك ضغط 7 ملفات فقط ويترك ال 3 ملفات الباقيه )




    وهنا علينا أن نستخدم الطريقتين


    نستخدم الطريقه الاولى وهي أن تشمل المجلدات وذلك لمعرفة عدد المجلدات فقط ( ولكن بطريقه غير مباشرة وسنستخدم طريقه معينه لنعرف بها عدد المجلدات ) ستجدوا الكود في الملف المفتوح


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

    بمعنى ذكرنا في الطريقه الثانيه يتم فك ضغك الملفات ولكنها تنقص بعدد المجلدات وبالتالي سوف نحتاج لنزيد حلقات التكرار بعدد المجلدات حتى يتم فك ضغط كل الملفات وهذا ما حصلنا عليه في الطريقه الاولى


    أتمنى أن تكون وضحت الفكرة وهذا الملف المفتوح قد يسهل عليكم الأمر

    رابط التحميل ..

    http://www.mediafire.com/?kijj1ij5b3dyfzu

    طبعا قد يقول البعض ( بلاش وجع راس ) HeHeHe !! :abc_145: ولكن على المرء منا أن يسعى دائما للإحتراف في فهم أدق تفاصيل البرمجه ( طبعا لمن يهمه الأمر )

    كل ودي وتقديري

  • #2
    جزاك الله خيرا اخانا هيثم

    صدقت لمن يريد الإحتراف لابد وأن يجتهد ويتعلم اسرار البرمجة

    بارك الله في جهودك

    تعليق


    • #3
      موفق بإذن الله ... لك مني أجمل تحية .

      تعليق


      • #4
        جزاك الله خيرا أخانا هيثم إسماعيل وأكثر من امثالك

        تعليق


        • #5
          بسم الله الرحمن الرحيم

          جزاك الله خيراأخ هيثم
          تطبيقات مميزة كالعادة .



          تعليق

          مواضيع تهمك

          تقليص

          المنتدى: القسم العام نشرت بواسطة: Reem2Rabeh الوقت: 04-23-2025 الساعة 04:27 PM
          المنتدى: ضبط وتوكيد الجودة نشرت بواسطة: HeaD Master الوقت: 04-15-2025 الساعة 09:30 AM
          المنتدى: التصنيع والانتاج نشرت بواسطة: HeaD Master الوقت: 04-11-2025 الساعة 01:08 PM
          المنتدى: القسم العام نشرت بواسطة: نوال الخطيب الوقت: 03-19-2025 الساعة 03:07 AM
          المنتدى: الكمبيوتر والإنترنت نشرت بواسطة: عوض السوداني الوقت: 03-18-2025 الساعة 07:22 AM
          يعمل...
          X