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

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

عدد سطور نص فى ذاكرة الجهاز

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

  • عدد سطور نص فى ذاكرة الجهاز

    السلام عليكم

    لدى برنامج يستخدم الاضافة كلايبورد clipboard

    و أقوم بنسخ مجموعة أسطر من ملف نصى بواسطة التظليل اليدوى ثم الأمر كوبى (المفترض أن المستخدم سينسخ نصا إلى برنامجى)

    كيف اتمكن من معرفة عدد الأسطر الموجودة فى الذاكرة clipboard ؟؟
    حتى أتمكن من عمل حلقة تتعامل مع النص و كأنه مجموعة من الأسطر
    هل هناك طريقة لأتعرف على عدد الأسطر أم هذا مستحيل ؟؟

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

    أخي حازم أقترح عليك بتصدير ما تم نسخه لملف نصي آخر
    ثم يتم حساب الأسطر من خلاله فهمتني

    جرب هذا :
    [html]result = Clipboard.GetText();
    TextFile.WriteFromString("C:\\MyFile.txt", result, false);
    c= TextFile.ReadToTable("C:\\MyFile.txt");
    result = Table.Count(c);
    Dialog.Message("Notice", result);[/html]

    ملاحظة : في مثل هاته العمليات لا تنس عند تصدير مشروعك بأن تجعله مسؤول

    موفق

    تعليق


    • #3
      استاذ تامر

      المستخدم هو من سينسخ الكود يدويا بمعرفته لأننى لا أعرف مصدر البيانات على جهازه و حتى لا اعرف نوع الملفات
      كل ما اعرفه انها ستكون نصوص

      هل اطلب من المستخدم اولا ان يحفظ البيانات فى شكل ملف نصى ؟

      و هل افهم من ذلك انه لا توجد طريقة لعد الأسطر الموجودة بداخل الكلايبورد clipboard ؟

      تعليق


      • #4
        أخى حازم
        هل اطلب من المستخدم اولا ان يحفظ البيانات فى شكل ملف نصى ؟
        كلا
        الكود المطروح سيقوم بذلك

        سؤالى لك
        هل سيشكل إنشاء ملفا نصيا على القرص الصلب فارقا لديك ؟؟

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

        ان لم يكن يشكل فارقا
        فالحل المقدم يفى بالغرض

        تعليق


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

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

          تعليق


          • #6
            ما شاء الله عليك اخ ثامر و ربنا يكتر من أمثالك

            تعليق


            • #7
              شكرا جزيلا استاذ تامر


              المشاركة الأصلية بواسطة النصل القاطع مشاهدة المشاركة
              سؤالى لك
              هل سيشكل إنشاء ملفا نصيا على القرص الصلب فارقا لديك ؟؟
              شكرا لإهتمامك أستاذ النصل القاطع
              فى المشروع الحالى لن يفرق معى انشاء ملف نصى على القرص
              و استطيع حذفه بالكود بعد الانتهاء من العدد

              تعليق


              • #8
                بسم الله الرحمن الرحيم
                السلام عليكم ورحمة الله وبركاته
                شكرا لك استاذنا الكريم / ابوبلقيس
                الله يعطيك العافية
                =============

                تعليق


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

                  تعليق


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

                    تعليق


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

                      من بين الحلول العديدة إليك أخي و أستاذي المحترم ياسر مايلي :

                      أكتب في global functions
                      كود PHP:
                      function DelimitedStringToTable(DelimitedStringDelimiter)
                          
                      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 

                      و لاستخراج عدد الأسطر التي تم نسخها نضع هذا الكود في زر مثلا
                      كود PHP:
                      sz_string Clipboard.GetText();
                      tblLines =  DelimitedStringToTable(sz_string"\r\n")
                      if (
                      Table.Count(tblLines) > 0then
                          min 
                      1;  
                          
                      max Table.Count(tblLines);  
                           
                      Dialog.Message("Notice"max);
                       
                      end 
                      و السلام عليكم ورحمة الله

                      تعليق


                      • #12
                        شكر وتقدير

                        السلام عليكم ورحمة الله وبركاته
                        شــــــكراً أستاذي الكريم

                        الله يعطيك العافية

                        -

                        تعليق


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

                          من بين الحلول العديدة إليك أخي و أستاذي المحترم ياسر مايلي :

                          أكتب في global functions
                          كود PHP:
                          function DelimitedStringToTable(DelimitedStringDelimiter)
                              
                          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 

                          و لاستخراج عدد الأسطر التي تم نسخها نضع هذا الكود في زر مثلا
                          كود PHP:
                          sz_string Clipboard.GetText();
                          tblLines =  DelimitedStringToTable(sz_string"\r\n")
                          if (
                          Table.Count(tblLines) > 0then
                              min 
                          1;  
                              
                          max Table.Count(tblLines);  
                               
                          Dialog.Message("Notice"max);
                           
                          end 
                          و السلام عليكم ورحمة الله
                          شكرا استاذ تامر
                          لكنى ساعتمد على الحل الأول
                          نظرا لسهولته

                          اكرر شكرى

                          تعليق


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

                            راجع الخاص

                            تعليق


                            • #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