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

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

تحويل النص في اي عنصر الى عناصر Label

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

  • تحويل النص في اي عنصر الى عناصر Label

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

    في هذا الدرس السريع ...... نحول اي نص الى مجموعة من الكلمات
    و المقصود هنا هو ان نحول نص موجود في عنصر ما مثلا
    label....input.....paragraph......file.txt.....ric htext.......
    تحويل النص الى مجموعة من ليبالات label منفصلة
    ممكن استخدامها في برامج تعليمية مثلا قصد السحب و الافلات مثلا
    او تفريقها لاعطاء البعض منها مما يحقق شرطا معينا لونا او حجما خاصا
    ( مثال ...... فيه جملة .....نريد الكلمات التي تنتمي لحروف الحر ان تكون كبيرة )

    ضع انبوت و الذي ستكتب فيه ما تشاء
    Input1

    ثم في زر نضع الكود التالي

    كود PHP:
    Input.GetText("Input1");
    if 
    == "" then
    Dialog
    .Message("طريق الاحتراف","انت لم تكتب شبئا");
    else
    ----------------
    تحويل النص الى كلمات-----------
    s={}; e=1;  
    for 
    w in string.gmatch(t,"[^%s]+") do
     
    Table.Insert(s,e,w);
     
    e=e+1;
    end
    con 
    Table.Count(s);
    ------------------------
    converti en label ---------------
    tLabelProperties = {};
    tLabelProperties.FontName "Arial";
    tLabelProperties.FontScript 1;
    tLabelProperties.FontSize 24;
    ----------------------------------------------
    tLabelProperties.140;
    tLabelProperties.200;
    tLabelProperties.Text s[1];
    Page.CreateObject(OBJECT_LABEL"B1"tLabelProperties);
    Label.SetProperties("B1", {ColorNormal Math.HexColorToNumber("000000")});

    -------
    for 
    con do
    tLabelProperties.Text s[r];
    tLabelProperties.Label.GetPos("B"..r-1).Label.GetSize("B"..r-1).Width 5;
    tLabelProperties.140;
    Page.CreateObject(OBJECT_LABEL"B"..rtLabelProperties);
    Label.SetProperties("B"..r, {ColorNormal Math.HexColorToNumber("000000")});
    end ;
    ---------------
    انتهى كود التحويل---------
    end 

    من اجل المسح ...مع العلم اننا جعلناه يحفظ قيمة con وهي عدد الكلمات و الا فاجعلها عدد كبير
    كود PHP:
    for 1,con do
    Page.DeleteObject("B"..i);
    end 
    طبعا الكود التالي خاص بترتيب الكلمات من اليسار الى اليمين
    و للجمل البسيطة و ليست الطويلة
    لانه سيضع كل الكلمات في سطر واحد
    لذلك يحتاج الى تهذيب
    .....فللجمل العربية يتطلب ان نجعل الكود يعيد ترتيب النص عكسيا----
    ------ و للجمل الطويلة نحتاج ان نجعله يحدد عدد الكلمات لكل سطر ثم يعود لوضع الباقي في سطر اخر و هكذا------

    وهنا ياتي دوركم يا اخوة

    تحياتي

  • #2
    مثال من اجل نص طويل
    ----------النص في الكود بين "" ......يمكن استدعائه من ملق txt مثلا

    في هذا الكود سنحول الى label في الاسطر

    كود PHP:
    ---------------نص افتراضي----------
    t"Je suis le miel, produit de la transformation du nectar des fleurs. Quelle Magie ! L’abeille récolte ce nectar sur les fleurs : elle collecte  sur plus de mille fleurs jusqu’à 70 milligrammes, alors qu’elle pèse 80 milligrammes à vide ! ";
       
     ---------
    تجوله الى كلمات------------  
    s={}; e=1;
    for 
    w in string.gmatch(t,"[^%s]+") do
     
    Table.Insert(s,e,w);
     
    e=e+1;
    end
    con 
    Table.Count(s);
    ------------------------
    وضع اللمات في label ---------------
    tLabelProperties = {};
    tLabelProperties.FontName "Arial";
    tLabelProperties.FontSize 15;
    -----
    الكلمة الاولى في السطر الاول ---
    tLabelProperties.50;
    tLabelProperties.20;
    tLabelProperties.Text s[1];
    Page.CreateObject(OBJECT_LABEL"A1"tLabelProperties);
    ------
    الطر الاول--------

    for 
    12 do
    tLabelProperties.Text s[r];
    tLabelProperties.Label.GetPos("A"..r-1).Label.GetSize("A"..r-1).Width 3;
    tLabelProperties.50;
    Page.CreateObject(OBJECT_LABEL"A"..rtLabelProperties);
    end ;

    ------------ ----
    الكلمو ااولى في السطر الثاني ----------------
    tLabelProperties.80;
    tLabelProperties.20;
    tLabelProperties.Text s[13];
    Page.CreateObject(OBJECT_LABEL"A13"tLabelProperties);

    ----------
    السطر الثاني-----------------

    for 
    14 25 do
    tLabelProperties.Text s[r];
    tLabelProperties.Label.GetPos("A"..r-1).Label.GetSize("A"..r-1).Width 5;
    tLabelProperties.80;
    Page.CreateObject(OBJECT_LABEL"A"..rtLabelProperties);
    end

    -------------الكلمة الاولى في السطر الثالث
    tLabelProperties
    .110;
    tLabelProperties.20;
    tLabelProperties.Text s[26];
    Page.CreateObject(OBJECT_LABEL"A26"tLabelProperties);
    ---------
    الطر الثالث----
    for 
    27 37 do
    tLabelProperties.Text s[r];
    tLabelProperties.Label.GetPos("A"..r-1).Label.GetSize("A"..r-1).Width 5;
    tLabelProperties.110;
    Page.CreateObject(OBJECT_LABEL"A"..rtLabelProperties);
    end

    ----------الكلمة 1 في السطر 4----
    tLabelProperties.140;
    tLabelProperties.20;
    tLabelProperties.Text s[38];
    Page.CreateObject(OBJECT_LABEL"A38"tLabelProperties);
    -----------
    السطر 4--
    for 
    39 49 do
    tLabelProperties.Text s[r];
    tLabelProperties.Label.GetPos("A"..r-1).Label.GetSize("A"..r-1).Width 5;
    tLabelProperties.140;
    Page.CreateObject(OBJECT_LABEL"A"..rtLabelProperties);
    end

    ---------- 
    بالتوفيق

    تعليق


    • #3
      بــــارك الله فيك ...
      جيدة هاته النوعية من التلميحات فهي الأفيد
      و الأجمل هو مزامنة الدرس مع الاستفسار عنه قبل طرحه
      فهو أسلوب أراه جيد في التعلم او التعليم فلاستفزاز البرمجي دافع للانجاز

      تعليق


      • #4
        المشاركة الأصلية بواسطة ثامر أبو بلقيس مشاهدة المشاركة
        بــــارك الله فيك ...
        جيدة هاته النوعية من التلميحات فهي الأفيد
        و الأجمل هو مزامنة الدرس مع الاستفسار عنه قبل طرحه
        فهو أسلوب أراه جيد في التعلم او التعليم فلاستفزاز البرمجي دافع للانجاز
        شكرا جزيلا اساتذ على المرور و الطرح .......نعمل به في قابل الايام

        هل فيه لقطة لوضع النص مقلوبا ليسهل التعامل معه ..........هل فيه كرد يكتشف ان لغة النص هي العربية فيقلب ترتيب الكلمات او اجنبي فيتركها كما هي ؟

        تعليق


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


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

          تعليق


          • #6
            المشاركة الأصلية بواسطة المحترف اقلي مشاهدة المشاركة
            شكرا جزيلا اساتذ على المرور و الطرح .......نعمل به في قابل الايام

            هل فيه لقطة لوضع النص مقلوبا ليسهل التعامل معه ..........هل فيه كرد يكتشف ان لغة النص هي العربية فيقلب ترتيب الكلمات او اجنبي فيتركها كما هي ؟
            طلبت أخي لقطة هاهي وستجمع لك الكل جنبا الى جنب دون تشوهات في الوجه :
            كود PHP:
            tLabelProperties.FontScript DEFAULT_CHARSET 

            تعليق


            • #7
              المشاركة الأصلية بواسطة ثامر أبو بلقيس مشاهدة المشاركة
              طلبت أخي لقطة هاهي وستجمع لك الكل جنبا الى جنب دون تشوهات في الوجه :
              كود PHP:
              tlabelproperties.fontscript default_charset 
              بارك الله فيكم
              غير ان اللقطة لم تفلح في قلب الجملة
              اظنني سالجا الى الكود الطويل

              تعليق


              • #8
                محاولة من اجل النصوص العربية

                كود PHP:
                Input.GetText("Input1");
                if 
                == "" then
                Dialog
                .Message("طريق الاحتراف","انت لم تكتب شبئا");
                else
                ----------------
                تحويل النص الى كلمات-----------

                sr={}; e=1;  
                for 
                w in string.gmatch(t,"[^%s]+") do
                 
                Table.Insert(sr,e,w);
                 
                e=e+1;
                end
                con 
                Table.Count(sr);------عدد الكلمات و التي نحتاجها لاحقا
                [on Table.Count(sr);------عدد الكلمات و الذي نستخدمه الان
                s
                ={}; ---------مصفوفة معكوسة------------
                for 
                n in pairs(sr) do
                Table.Insert(s,i,sr[on]);-----------نسجل كلمات المصفوفة الاولى في المصفوفة الثانية بعكس الترتيب
                on 
                on-1
                end

                ------------------فنحصل على مصفوفة لكن بترتيب معكوس للكلمات 
                ------------------------converti en label ---------------
                tLabelProperties = {};
                tLabelProperties.FontName "Arial";
                tLabelProperties.FontScript DEFAULT_CHARSET 
                tLabelProperties
                .FontSize 24;
                ----------------------------------------------
                tLabelProperties.140;
                tLabelProperties.200;
                tLabelProperties.Text s[1];
                Page.CreateObject(OBJECT_LABEL"B1"tLabelProperties);
                Label.SetProperties("B1", {ColorNormal Math.HexColorToNumber("000000")});

                -------
                for 
                con do
                tLabelProperties.Text s[r];
                tLabelProperties.Label.GetPos("B"..r-1).Label.GetSize("B"..r-1).Width 5;
                tLabelProperties.140;
                Page.CreateObject(OBJECT_LABEL"B"..rtLabelProperties);
                Label.SetProperties("B"..r, {ColorNormal Math.HexColorToNumber("000000")});
                end ;
                ---------------
                انتهى كود التحويل---------
                end 

                تعليق


                • #9
                  المشاركة الأصلية بواسطة المحترف اقلي مشاهدة المشاركة
                  بارك الله فيكم
                  غير ان اللقطة لم تفلح في قلب الجملة
                  اظنني سالجا الى الكود الطويل
                  أكتب الكود الذي لم يفلح و كيف وظفت ما كتبت لك

                  تعليق


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

                    كود PHP:
                    input.gettext("input1");
                    if 
                    == "" then
                    dialog
                    .message("طريق الاحتراف","انت لم تكتب شبئا");
                    else
                    ----------------
                    تحويل النص الى كلمات-----------

                    sr={}; e=1;  
                    for 
                    w in string.gmatch(t,"[^%s]+") do
                     
                    table.insert(sr,e,w);
                     
                    e=e+1;
                    end
                    con 
                    table.count(sr);------عدد الكلمات و التي نحتاجها لاحقا
                    on 
                    table.count(sr);------عدد الكلمات و الذي نستخدمه الان
                    s
                    ={}; ---------مصفوفة معكوسة------------
                    for 
                    n in pairs(sr) do
                    table.insert(s,i,sr[on]);-----------نسجل كلمات المصفوفة الاولى في المصفوفة الثانية بعكس الترتيب
                    on 
                    on-1
                    end

                    ------------------فنحصل على مصفوفة لكن بترتيب معكوس للكلمات 
                    ------------------------converti en label ---------------
                    tlabelproperties = {};
                    tlabelproperties.fontname "arial";
                    tlabelproperties.fontscript default_charset 
                    tlabelproperties
                    .fontsize 24;
                    ----------------------------------------------
                    tlabelproperties.140;
                    tlabelproperties.200;
                    tlabelproperties.text s[1];
                    page.createobject(object_label"b1"tlabelproperties);
                    label.setproperties("b1", {colornormal math.hexcolortonumber("000000")});

                    -------
                    for 
                    con do
                    tlabelproperties.text s[r];
                    tlabelproperties.label.getpos("b"..r-1).label.getsize("b"..r-1).width 5;
                    tlabelproperties.140;
                    page.createobject(object_label"b"..rtlabelproperties);
                    label.setproperties("b"..r, {colornormal math.hexcolortonumber("000000")});
                    end ;
                    ---------------
                    انتهى كود التحويل---------
                    end 
                    لماذا الان تمت الكتابة بالعربية في رأيك ؟

                    تعليق


                    • #11
                      المشاركة الأصلية بواسطة المحترف اقلي مشاهدة المشاركة
                      شكرا جزيلا اساتذ على المرور و الطرح .......نعمل به في قابل الايام

                      هل فيه لقطة لوضع النص مقلوبا ليسهل التعامل معه
                      ما المقصود بالضبط حتى أفهم

                      تعليق


                      • #12
                        المشاركة الأصلية بواسطة ثامر أبو بلقيس مشاهدة المشاركة
                        ما المقصود بالضبط حتى أفهم
                        الكود الاول يعمل في النصوص الاجنبية .......اقصد الترتيب من اليسار الى اليمين

                        فلو كانت الجملة
                        je suis très content

                        الكود يقسمها بنفس الترتيب

                        لكن اذا كانت الجملة بالعربي ..........مثال بسم الله الرحمن الرحيم
                        الكود يجعلها تظهر هكذا .............الرحيم الرحمن الله بسم

                        ذللك كان لزاما تغيير حفظ الكلمات في المصفوفة من الاخير الى الاول

                        تعليق


                        • #13
                          المشاركة الأصلية بواسطة ثامر أبو بلقيس مشاهدة المشاركة
                          لماذا الان تمت الكتابة بالعربية في رأيك ؟
                          الشرح في الكود ............بعد حفظ الكلمات في المصفوفة الاولى
                          اعدت حفظها من جديد في المصفوفة الثانية بالمقلوب

                          تعليق


                          • #14
                            هذا توظيفي للكود

                            كود PHP:
                            Input.GetText("Input1");
                            if 
                            == "" then
                            Dialog
                            .Message("طريق الاحتراف","انت لم تكتب شبئا");
                            else
                            ----------------
                            تحويل النص الى كلمات-----------
                            s={}; e=1;  
                            for 
                            w in string.gmatch(t,"[^%s]+") do
                             
                            Table.Insert(s,e,w);
                             
                            e=e+1;
                            end
                            con 
                            Table.Count(s);
                            ------------------------
                            converti en label ---------------
                            tLabelProperties = {};
                            tLabelProperties.FontName "Arial";
                            tlabelproperties.fontscript default_charset -----------------------------هنا وضعت الكود يا استاذ
                            tLabelProperties
                            .FontSize 24;
                            ----------------------------------------------
                            tLabelProperties.140;
                            tLabelProperties.200;
                            tLabelProperties.Text s[1];
                            Page.CreateObject(OBJECT_LABEL"B1"tLabelProperties);
                            Label.SetProperties("B1", {ColorNormal Math.HexColorToNumber("000000")});

                            -------
                            for 
                            con do
                            tLabelProperties.Text s[r];
                            tLabelProperties.Label.GetPos("B"..r-1).Label.GetSize("B"..r-1).Width 5;
                            tLabelProperties.140;
                            Page.CreateObject(OBJECT_LABEL"B"..rtLabelProperties);
                            Label.SetProperties("B"..r, {ColorNormal Math.HexColorToNumber("000000")});
                            end ;
                            ---------------
                            انتهى كود التحويل---------
                            end 

                            تعليق


                            • #15
                              أين هي المشاركة التي فيه الكود يعرض الجملة بالمقلوب
                              لقد كثرت الأكواد ..

                              تعليق

                              مواضيع تهمك

                              تقليص

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