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

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

تمرين : عدد الكلمات في متغير

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

  • تمرين : عدد الكلمات في متغير

    السلام عليكم ورحمة الله وبركاته
    بغية التنشيط و التعلم لا غير .... تمت محاولات متعلقة بحساب
    عدد الكلمات في متغير جيدة
    لكن بها بعض الأخطاء الطفيفة جدا .... شارك بكود يفي بالغرض مع
    التركيز على دعم اللغة العربية
    وبين التنوع في حلول تحكمها التجربة .. ستكون هنااك حلول ذات فائدة
    ----------------------------------------
    شارك في بناء كود موفق

  • #2
    --- اذ كانت الدعوة للتعلم من بعض و استثمار الوقت
    غير مناسب طرحا .... لابأس أن يلقى كذلك هذا الموضوع الحذف
    بدون انزعاج ---- تقديري

    تعليق


    • #3
      المشاركة الأصلية بواسطة ثامر أبو بلقيس مشاهدة المشاركة
      --- اذ كانت الدعوة للتعلم من بعض و استثمار الوقت
      غير مناسب طرحا .... لابأس أن يلقى كذلك هذا الموضوع الحذف
      بدون انزعاج ---- تقديري
      لماذا تقول ذلك أخى ؟ هل هناك تقصيرا إداريا أو تهديدا بالحذف من قبل أحد من إدارة القسم أو الموقع ؟

      تعليق


      • #4
        للأمانة : لا تقصير و لا تهديد لا من ادارة و لا من عضو
        مشكور أخي

        تعليق


        • #5
          السلام عليكم

          هذا إصدار أوّليّ للعمليّة، المحاولة بدائيّة للغاية لكنّها تفي بالغرض، يمكن تحويل شِفرة الحساب إلى دالة لتسهيل العمل :)
          نصّ الدّوال العموميّة (حصلت على دالة DelimitedStringToTable من www.indigorose.com/forums/threads/20141):
          كود:
          function DelimitedStringToTable(DelimitedString, Delimiter)
              tbReturn = {}
              local strWorking
              local nPos = nil
              local strData
              local nTableIndex = 1
              local nDelimiterLength = String.Length(Delimiter)
              if (nDelimiterLength < 1) then
                  tbReturn[nTableIndex] = DelimitedString
                  return tbReturn
              end
              strWorking = DelimitedString
              nPos = String.Find(strWorking, Delimiter)
              while (nPos ~= -1) do
                  strData = String.Left(strWorking, nPos -1)
                  tbReturn[nTableIndex] = strData
                  nTableIndex = nTableIndex + 1
                  local nLength = String.Length(strWorking)
                  strWorking = String.Right(strWorking, nLength - (nPos + (nDelimiterLength -1)))
                  nPos = String.Find(strWorking, Delimiter)
              end
              if (strWorking ~= "") then
                  tbReturn[nTableIndex] = strWorking
              end
              return tbReturn
          end
          
          arabicCharactersString = 'اأإآىبتةثجحخدذرزسشصضطظعغفقكلمنهوؤيئء'..'؟!.،؛’"\''..'ًٌٍَُِّْ'
          شِفرة الزرّ/الحدث/أيًّا كان:
          كود:
          arabicText=Input.GetText('arabicText')
          
          newArabicText=DelimitedStringToTable(arabicText, ' ')
          
          numberOfArabicWords=0
          for j,word in pairs(newArabicText) do
              wordLength=String.Length(word);
              wordIsOK=true
              for x=1, wordLength do
                  searchLetter=String.Find(arabicCharactersString,String.Mid(word,x,1))
                  if searchLetter == -1 then
                      wordIsOK=false
                      break
                  end
                  if wordIsOK ~= true then
                      break
                  end
              end
              if wordIsOK == true then
                  numberOfArabicWords = numberOfArabicWords +1
              end
          end
          Dialog.Message('خرجت النتيجة أخيرًا!','عدد الكلمات العربية هو '..numberOfArabicWords)
          تحيّاتي
          التعديل الأخير تم بواسطة صفا الفليج; الساعة 17-11-2014, 07:22 PM. سبب آخر: محاذاة النصّ إلى اليمين

          تعليق


          • #6
            ما شاء الله جاري التجربة
            و محاولة المشاركة بكود تقديري

            تعليق


            • #7
              السلام عليكم ورحمة الله وبركاته
              عند وجود اسم بجانبه رقم
              مثلا
              كود PHP:
              ثامر2014 
              لماذا احتسب عدد الكلمات 0

              تعليق


              • #8
                المشاركة الأصلية بواسطة ثامر أبو بلقيس مشاهدة المشاركة
                السلام عليكم ورحمة الله وبركاته
                عند وجود اسم بجانبه رقم
                مثلا
                كود PHP:
                ثامر2014 
                لماذا احتسب عدد الكلمات 0
                لأنّ الكلمة حسب عمل البرنامج هي التي تسبقها مسافة وتليها مسافة، يمكنك إضافة الأرقام من 0 إلى 9 إلى سلسلة المحارف في الدّوال العموميّة.
                وأيضًا لأنّ "ثامر2014" خاطئة كتابيًا أساسًا، مَن هذا الذي عندما يناديه أحد في الشارع يضيف 2014 وهو يناديه؟ :d

                تعليق


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

                  نعم فعلت ذلك و نجح الامر و حسب 1

                  لكن عند وجود مساافة بادئة مثلا :
                  كود PHP:
                   ثامر2014 
                  يحسب 2

                  تعليق


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

                    نعم فعلت ذلك و نجح الامر و حسب 1

                    لكن عند وجود مساافة بادئة مثلا :
                    كود PHP:
                     ثامر2014 
                    يحسب 2
                    حسنًا، عدّل على الشِفرة لتزيل المسافات البادئة والمسافات المتكررة (استبدل كل مسافتين بمسافة)
                    استخدم الدالة Mid و TrimLeft مع حلقة while
                    ؛)

                    تعليق


                    • #11
                      لم أعرف أخي كيف أستعملها أي لم تصلني الفكرة

                      تعليق


                      • #12
                        حسنا أخي صفا تبادلا للأفكار
                        سأضع مقترح
                        في البداية لوكان عندنا نص مكتوب مثلا في انبوت

                        ماذا سيعطينا هذا الكود ؟
                        كود PHP:
                        for w in string.gmatch (Input.GetText("Input1"), "%S+") do
                         
                        Dialog.Message("Notice",w);
                        end 
                        سيستخلص المفردة واحدة واحدة أليس كذلك
                        نستعمل الحيلة و نعلن عن عدد المفردات
                        كود PHP:
                        for w in string.gmatch (Input.GetText("Input1"), "%S+") do

                         
                        Dialog.Message("Notice",#w);
                        end 
                        بقليل من التفكير مجموع حروف كلمة مقسوم على نفس المجموع = 1
                        أي نبدأ في استخلاص عدد المفردات مباشرة ونعلن عنها بمجموع
                        كود PHP:
                        F=""
                        for w in string.gmatch (Input.GetText("Input1"), "%S+") do
                        F=F..#w/#w
                        end
                         Dialog
                        .Message("Notice",#F); 
                        هذا محاولتي قد تلقى القبول أو النقد المهم مشاركة معكم

                        تعليق


                        • #13
                          المشاركة الأصلية بواسطة ثامر أبو بلقيس مشاهدة المشاركة
                          بقليل من التفكير مجموع حروف كلمة مقسوم على نفس المجموع = 1
                          أي نبدأ في استخلاص عدد المفردات مباشرة ونعلن عنها بمجموع
                          كود PHP:
                          F=""
                          for w in string.gmatch (Input.GetText("Input1"), "%S+") do
                          F=F..#w/#w
                          end
                           Dialog
                          .Message("Notice",#F); 
                          هذا محاولتي قد تلقى القبول أو النقد المهم مشاركة معكم
                          لأوّل وهلة ظننت أن string هي إضافة :\
                          معلوماتي عتيقة لذلك لم أستوعب ما هي، جميل استخدام أصل lua :)
                          يمكن الاستغناء عن دالة تقسيم السلسلة بهذه الطريقة.
                          حسنًا، ما رأيك بالاستغناء عن gmatch والاستيعاظ عنها بـ match؟
                          جرب هذا التعبير بدل %S+:
                          كود:
                          ([؀-ۿݐ-ݿﭐ-﷽ﹰ-ﻼ]+)
                          (لا أدري أن كانت الأقواس ضرورية أم لا...)
                          لم أجرّبه صراحةً في AutoPlay لكنّي جرّبته في فاحصات التعابير النمطية.

                          تحياتي

                          تعليق


                          • #14
                            المشاركة الأصلية بواسطة صفا الفليج مشاهدة المشاركة


                            لأوّل وهلة ظننت أن string هي إضافة :\
                            معلوماتي عتيقة لذلك لم أستوعب ما هي، جميل استخدام أصل lua :)
                            يمكن الاستغناء عن دالة تقسيم السلسلة بهذه الطريقة.
                            حسنًا، ما رأيك بالاستغناء عن gmatch والاستيعاظ عنها بـ match؟
                            جرب هذا التعبير بدل %S+:
                            كود:
                            ([؀-ۿݐ-ݿﭐ-﷽ﹰ-ﻼ]+)
                            (لا أدري أن كانت الأقواس ضرورية أم لا...)
                            لم أجرّبه صراحةً في AutoPlay لكنّي جرّبته في فاحصات التعابير النمطية.

                            تحياتي
                            بعد أن أعلمني الأخ ثامر على الخاص بأنّ المحرر لا يدعم المحارف هذه أتيت لأجلب حلا..

                            بدل '%S+' نضع:
                            كود:
                            '['..arabicCharactersString..']+'
                            ونجرّب...

                            تعليق


                            • #15
                              أخي صفا هاته النوعية من الدوال تتعامل مع ريجكس


                              فشلي في تنفيذ ما تقترحه لا ينفي صحته

                              ومن المؤكد يمكن الحصول على توليفة غير محدودة من المطابقات
                              بارك الله فيك

                              تعليق

                              مواضيع تهمك

                              تقليص

                              المنتدى: المكتبة الالكترونية نشرت بواسطة: HaMooooDi الوقت: 07-30-2025 الساعة 04:01 PM
                              المنتدى: التصنيع والانتاج نشرت بواسطة: HaMooooDi الوقت: 07-30-2025 الساعة 03:44 PM
                              المنتدى: التعريف بالهندسة الصناعية نشرت بواسطة: HaMooooDi الوقت: 07-30-2025 الساعة 03:38 PM
                              المنتدى: الجوال والإتصالات نشرت بواسطة: ماريا عبد الله الوقت: 07-10-2025 الساعة 01:22 AM
                              المنتدى: الجوال والإتصالات نشرت بواسطة: ماريا عبد الله الوقت: 07-04-2025 الساعة 12:04 AM
                              يعمل...
                              X