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

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

ملف مفتوح .. توظيف شريط حالة تقدم progress عند فك ضغط أي ملف مضغوط بشكل دقيق ( مميز )

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

  • ملف مفتوح .. توظيف شريط حالة تقدم progress عند فك ضغط أي ملف مضغوط بشكل دقيق ( مميز )



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

    بمعنى أن يظهر للمستخدم شريط progress يوضح له مدى تقدم العملية الحالية

    فعندما فكرت في عمل شريط 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 إلا بعد أن ينتهي من عملية فك الضغط فعليا


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


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


    نفترض أن لديك مجلد اسمه ( مجلد 1 ) و به 10 ملفات ومن ضمنهم مجلد اسمه ( مجلد 2 ) ويوجد داخل ( مجلد 2 ) مجموعه من الملفات


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



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

    كود:
    Zip.GetContents("Data\\Docs\\file.zip", true);

    وهنا true أي اشمل المجلدات

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


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


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


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

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

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


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

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

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



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


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


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


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


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




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

    رابط الملف


    http://www.mediafire.com/?3f22ztfa7azk95a

    للعلم : ضع أولا أي ملف مضغوط داخل مجلد Docs حتى لا تظهر رسالة خطأ عند الضغط على الزر

    مع مراعاة اسم الملف داخل المجلد واسمه في اكواد البرمجه

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

    تعليق


    • #3

      جزاكم الله خيرا أخانا الفاضل هيثم

      تعليق


      • #4
        بارك الله فيك اخانا هيثم

        :shokr:

        تعليق


        • #5
          بارك الله فيك ’ جزاك الله خيرا

          تعليق

          مواضيع تهمك

          تقليص

          المنتدى: القسم العام نشرت بواسطة: ماريا عبد الله الوقت: 06-08-2025 الساعة 11:33 PM
          المنتدى: القسم العام نشرت بواسطة: ماريا عبد الله الوقت: 06-04-2025 الساعة 05:29 PM
          المنتدى: القسم العام نشرت بواسطة: ماريا عبد الله الوقت: 05-31-2025 الساعة 10:07 PM
          المنتدى: القسم العام نشرت بواسطة: ماريا عبد الله الوقت: 05-30-2025 الساعة 11:48 PM
          المنتدى: التصنيع والانتاج نشرت بواسطة: HaMooooDi الوقت: 05-30-2025 الساعة 09:36 AM
          يعمل...
          X