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

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

منع تكرار البيانات في ListBox

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

  • منع تكرار البيانات في ListBox

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

    عندي عنصر ListBox وفيه مجموعة من الملفات، بالنسبة لـ Item Data ففيه مسار الملف في جهاز الكمبيوتر، أما Item Text ففيه اسم الملف
    عندي Input + Button > لإضافة الملفات الجديدة.

    ليكن مثلاً في ListBox اسم abc4.jpg ومسار الملف C:\img

    كيف يمكنني منع تكرار العناصر في ListBox؟؟ بحيث لو اضفت مسار ملف جديد باستخدام Input يعلمني أن هذا الملف موجود في قائمة ListBox (مع إمكانية تحديد الملف الموجود، إن أمكن)؟؟

    انتظركم أحبتي :)

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

    اخي ابو محسن انا لم افهم طلبك جيد
    كان مفروض تضع ملف مفتوح

    ولكن دعنا نتبع اسلوب استاذنا الفاضل
    ابو بلقيس

    وساجيبك عن ما فهمت
    نفترض انك عندك Input1 و Input2
    لتدخل ItemText وItemData من خلالهم لـــListBox1
    ولا تريد ان لا تكرر ادخال ItemText

    هذا الكود في زر الادخال يحقق ما تريد

    كود PHP:
    TextInp1 Input.GetText("Input1"); 
    TextInp2 Input.GetText("Input2");
     
    ListBox.FindItem("ListBox1"1LB_BYTEXTTextInp1); 

    if 
    ~= -or TextInp1=="" then 
    Dialog
    .TimedMessage("......""åÐÇ ÇáÇÓã ãæÌæÏ Öãä ÇáÞÇÆãÉ Ãæ ÍÏÏ ÇÓãÇ ááÇÏÎÇá"5000MB_ICONINFORMATION); 
    else 
    ListBox.AddItem("ListBox1"TextInp1TextInp2); 
    end 

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















    تعليق


    • #3
      نيابة عن أخي المحترم ياسر

      هاهي محاولة سريعة يمكن تعديلها أو تهذيبها
      الوقت متأخر اذ بدى تعديل غدا إن شاء الله

      كود PHP:
       ListBox.AddItem("ListBox1"Input.GetText("Input1"), "");  ----  هذا اجراء تسجيل جديد
      ------------------------- هنااا لا تغيير شيء فقط  ضعها في زر التنفيذ--------
      ---  
      بعد  التحقــق ستظهر رسالة بأن الملف موجود أم لا -----------------------
      items = {};
      for 
      ListBox.GetCount("ListBox1")  do
      ListBox.GetItemText("ListBox1"i);
      Table.Insert(itemsiv);
      end
      tamer 
      = {}
      for 
      i=1,Table.Count(items) do
      if  
      not tamer[items[i]] then
      tamer
      [items[i]] = true
      if items[i] == Input.GetText("Input1")  then
      Dialog
      .Message("الملــف موجود و مســـاره",ListBox.GetItemData("ListBox1"i));
      end
      else
      ListBox.DeleteItem("ListBox1"i);
      end
      end
      ------------------------abou_belkiss--------------------------------------- 
      اعتمدت فيها على تحديد العناصر المكررة و جعلها أحادية عند الإجراء و التقاط معلومات المكرر قبل الحذف
      لإعلانها كسبب لرفض التسجيل .

      ================================================== ==============
      معلومة يمكنك استعمال الإضافة AE لحذف المكرر
      بالكود
      كود PHP:
      AE.ListBoxDeleteItemsRepeat("ListBox1"); 
      لكن قد لا تساعدك في الاعلان عن بيانات الملف المشابه و مساره
      ============================== نلتقي بود ============================

      تعليق


      • #4
        المشاركة الأصلية بواسطة ياسرهتهت مشاهدة المشاركة
        بسم الله الرحمن الرحيم

        اخي ابو محسن انا لم افهم طلبك جيد
        كان مفروض تضع ملف مفتوح

        ولكن دعنا نتبع اسلوب استاذنا الفاضل
        ابو بلقيس

        وساجيبك عن ما فهمت
        نفترض انك عندك Input1 و Input2
        لتدخل ItemText وItemData من خلالهم لـــListBox1
        ولا تريد ان لا تكرر ادخال ItemText

        هذا الكود في زر الادخال يحقق ما تريد

        كود PHP:
        TextInp1 Input.GetText("Input1"); 
        TextInp2 Input.GetText("Input2");
         
        ListBox.FindItem("ListBox1"1LB_BYTEXTTextInp1); 

        if 
        ~= -or TextInp1=="" then 
        Dialog
        .TimedMessage("......""åÐÇ ÇáÇÓã ãæÌæÏ Öãä ÇáÞÇÆãÉ Ãæ ÍÏÏ ÇÓãÇ ááÇÏÎÇá"5000MB_ICONINFORMATION); 
        else 
        ListBox.AddItem("ListBox1"TextInp1TextInp2); 
        end 
        موفق بإذن الله ... لك مني أجمل تحية .



        أشكرك أخي الفاضل ياسر (يسر الله أمرك)
        بل بمثالك هذا أنت قد فهمت طلبي 100%
        فـ الانبت 1 هو لمسار الملف، أما الانبت 2 فهو لاسم الملف وامتداده
        كان خطأي في كود ListBox.FindItem أني عند وضع الشرط أضع:
        if h ~= nil then
        وهذا الخطأ الذي جعلني أسئل

        أشكرك
        المشاركة الأصلية بواسطة ثامر أبو بلقيس مشاهدة المشاركة
        نيابة عن أخي المحترم ياسر

        هاهي محاولة سريعة يمكن تعديلها أو تهذيبها
        الوقت متأخر اذ بدى تعديل غدا إن شاء الله

        كود PHP:
         ListBox.AddItem("ListBox1"Input.GetText("Input1"), "");  ----  هذا اجراء تسجيل جديد
        ------------------------- هنااا لا تغيير شيء فقط  ضعها في زر التنفيذ--------
        ---  
        بعد  التحقــق ستظهر رسالة بأن الملف موجود أم لا -----------------------
        items = {};
        for 
        ListBox.GetCount("ListBox1")  do
        ListBox.GetItemText("ListBox1"i);
        Table.Insert(itemsiv);
        end
        tamer 
        = {}
        for 
        i=1,Table.Count(items) do
        if  
        not tamer[items[i]] then
        tamer
        [items[i]] = true
        if items[i] == Input.GetText("Input1")  then
        Dialog
        .Message("الملــف موجود و مســـاره",ListBox.GetItemData("ListBox1"i));
        end
        else
        ListBox.DeleteItem("ListBox1"i);
        end
        end
        ------------------------abou_belkiss--------------------------------------- 
        اعتمدت فيها على تحديد العناصر المكررة و جعلها أحادية عند الإجراء و التقاط معلومات المكرر قبل الحذف
        لإعلانها كسبب لرفض التسجيل .

        ================================================== ==============
        معلومة يمكنك استعمال الإضافة AE لحذف المكرر
        بالكود
        كود PHP:
        AE.ListBoxDeleteItemsRepeat("ListBox1"); 
        لكن قد لا تساعدك في الاعلان عن بيانات الملف المشابه و مساره
        ============================== نلتقي بود ============================
        مرحباً باستاذنا القدير: أبا بلقيس، أنت اسم على مسمى والله.
        الحقيقة التي لا أخفيها عنك أني لم أفهم مثالك جيداً.. ووجدت مساعدة أخي ياسر هي أسهل وتؤدي الغرض المطلوب مع بعض التعديل على الكود.. ليصبح هكذا:

        كود PHP:
        sAdd Input.GetText("sAd");

        if (
        sAdd == ""then
            Dialog
        .Message("""ليس هُناك بيانات مُدرجة؟")
        else

            
        search_index ListBox.FindItem("sTest", -1LB_BYDATAsAdd);
            
            if (
        search_index == -1then
                ListBox
        .AddItem("sTest"sAddsAdd);
            
            else
                
        Dialog.Message("""البيانات موجودة مسبقاً")
            
        end

        end 
        رأيت أن هذا أسهل ويفي بالغرض المنشود... هل لك رأي آخر أستاذي القدير؟

        ---
        بالنسبة للإضافة AE هل يمكنك رفعها لأنها ليست بحوزتي!

        تعليق


        • #5
          لا رأي لي أخي أبو محسن
          اعتمد المناسب لمشروعك فتلك هي الغاية

          عن الاضافة فقط لحيازتها لأن الأكواد كما ذكرت
          أدت المطلوب
          Action Extension
          http://up.top4top.net/downloadf-top4...8e2a1-rar.html

          موفق

          تعليق


          • #6
            إستخدام الجداول يكون لحفظ المتغيرات الى خارج الإجراء [ البلوك ] للإستخدام اللاحق أو لسبب يمنع من الحصول على نتائج بداخل الإجراء الحالى
            عدا ذلك تتم معالجة البيانات داخل الإجراء [ البلوك ] الذى تكونت من خلاله طالما لا يوجد ما يمنع ذلك
            و بدون استخدام الجداول

            تعليق


            • #7
              المشاركة الأصلية بواسطة ثامر أبو بلقيس مشاهدة المشاركة
              لا رأي لي أخي أبو محسن
              اعتمد المناسب لمشروعك فتلك هي الغاية

              عن الاضافة فقط لحيازتها لأن الأكواد كما ذكرت
              أدت المطلوب
              Action Extension
              http://up.top4top.net/downloadf-top4...8e2a1-rar.html

              موفق
              جزاك الله خير

              المشاركة الأصلية بواسطة المـهاجر مشاهدة المشاركة
              إستخدام الجداول يكون لحفظ المتغيرات الى خارج الإجراء [ البلوك ] للإستخدام اللاحق أو لسبب يمنع من الحصول على نتائج بداخل الإجراء الحالى
              عدا ذلك تتم معالجة البيانات داخل الإجراء [ البلوك ] الذى تكونت من خلاله طالما لا يوجد ما يمنع ذلك
              و بدون استخدام الجداول
              هل يمكنك ترجمة ما قلته بمثال بسيط ؟؟

              تعليق


              • #8
                المشاركة الأصلية بواسطة أبو محسن مشاهدة المشاركة
                جزاك الله خير



                هل يمكنك ترجمة ما قلته بمثال بسيط ؟؟
                اقصد انك اخترت الحل المناسب

                الكلام الخاص بإستخدام الجداول غير موجه لحضرتك تحديدا
                هى نصيحة لكافة المبرمجين قبل اللجوء للجداول فى مسائل لا تستدعيها

                تعليق


                • #9
                  المشاركة الأصلية بواسطة المـهاجر مشاهدة المشاركة
                  اقصد انك اخترت الحل المناسب

                  الكلام الخاص بإستخدام الجداول غير موجه لحضرتك تحديدا
                  هى نصيحة لكافة المبرمجين قبل اللجوء للجداول فى مسائل لا تستدعيها

                  أشكرك

                  تعليق


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

                    تعليق

                    مواضيع تهمك

                    تقليص

                    المنتدى: القسم العام نشرت بواسطة: 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