النتائج 1 إلى 8 من 8

الموضوع: إلى مبرمجي البيرل غير قادر على التعامل مع الصفر ؟



  1. إلى الإخوه مبرمجي البيرل وعلى رأسهم الاخ المبرمج و الاخ
    dbman ..
    أقوم بإنشاء برنامج يقدم خدمة عداد زوار مجاني .. وقد إنتهيت منه تقريباً لكن واجهتني مشكله لم أفهم أين الخلل بها .. وهي كالتالي :
    يقوم المستخدم بتعبيئة فورم معين به خانة تسمى ( بدء العد من ) يجب أن تكون تحتوي على رقم بين 0 إلى 9 فقط هل يمكن أن تمدوني بالكود المناسب لهذه الحاله انا إستخدمت هذا الكود لكنه لايقبل الصفر :
    <BLOCKQUOTE> <font> كود: </font> <div align="ltr"> <center> <table border="0" width="80%" dir="ltr" bgcolor=="#000000"> <tr> <td width="100%"> <pre> <font color="#ffffff">
    if (($StartCount eq "") &#0124; &#0124; ($StartCount =~ /[;&lt;&gt;\'|:!@#$%^&*()]/)) {
    &ErrorHTML(" &lt;CENTER&gt;&lt;B&gt; خــطــأ فــي خــانــة ( بدء العداد ) &lt;/B&gt;&lt;/CENTER&gt;&lt;BR&gt;&lt;CENTER&gt;قـم بتصحيح الخطأ ثم أعد المحاولة &lt;/CENTER&gt;");
    exit(0);
    </font> </pre> </td> </tr> </table> </center> </div> </BLOCKQUOTE>

    تلخيص المشكلة : الكود الموجود في الأعلى لايقبل الصفر ؟!

    مازن مليباري






    مازن مليباري غير متواجد حالياً


  2. #2
    عضو نشيط
    تاريخ التسجيل
    Jul 2000
    المشاركات
    47


    السلام عليكم ..

    الأخ NasaBaby ،
    في البداية ، أريد أن أسألك سؤال ؟ هل هذا النص الموجود هنا هو نفسه من الشفرة الأصلية ؟ حيث أن التعامل معها دقيق ...

    على العموم ، إليك طريقة دقيقة لحل هذه المشكلة :
    <BLOCKQUOTE> <font> كود: </font> <div align="ltr"> <center> <table border="0" width="80%" dir="ltr" bgcolor=="#000000"> <tr> <td width="100%"> <pre> <font color="#ffffff">
    if ( ($StartCount =~ /^\s+$/) &#0124; &#0124; ($StartCount !~ /^[0-9]{1}$/) )
    {
    print "&lt;center&gt;&lt;b&gt;خطأ في خانة بدء العد&lt;/b&gt;&lt;center&gt; ..... ";
    }
    </font> </pre> </td> </tr> </table> </center> </div> </BLOCKQUOTE>





    dbman غير متواجد حالياً



  3. كيف يعني أخوي مافهمت عليك ..
    نعم هذا جزء من الشيفره ؟!
    على فكرة ممكن تشرح لي وش سويت ؟!





    مازن مليباري غير متواجد حالياً

  4. #4
    عضو نشيط جدا
    تاريخ التسجيل
    Aug 2000
    المشاركات
    530


    كما قال الآخ dbman .. وهذه أيضا كافية :
    <BLOCKQUOTE> <font> كود: </font> <div align="ltr"> <center> <table border="0" width="80%" dir="ltr" bgcolor=="#000000"> <tr> <td width="100%"> <pre> <font color="#ffffff">
    if ($StartCounter !~ m/^[0-9]$/) {
    print "Error";
    }
    </font> </pre> </td> </tr> </table> </center> </div> </BLOCKQUOTE>
    كل ما عليك فعله هو التأكد من أن محتوى المتغيرة يحتوي على عدد واحد فقط، تفسير القالب أو الـ Patern الذي بالأعلى هو :
    ^ = بداية النص
    [0-9] = عدد بين صفر و 9
    $ = نهاية النص

    أي أنك تريد عددا بين 0 و 9 يكون واقعا بين بداية النص ونهايته، أي أن يكون النص كله عبارة عن عدد بين صفر و 9 .. لذلك القالب السابق يكفي.

    على فكرة لقد انتهيت من كتابة مقالتين أحدهما عن الـ Regular Expressions ولكنني مشغول جدا ولا أجد الوقت الكافي لإدخالها وهي تشحل كل شيء عن هذه القوالب في لغة perl.

    ------------------
    http://www.ArabBuilder.com





    mubarmej غير متواجد حالياً



  5. شكراً أخي المبرمج ..
    لكن فهمتم قصدي خطأ ..
    أقصد أن يكون العدد المدخل لا يحتوي سوى على الأعداد من 0 - 9 يعني
    100
    239
    4678
    1
    4657
    إلى آخره
    أي أنه لايقبل الاحرف ..
    الكود الذي قمت بوضعه في الاعلى لايقبل الرقم صفر أي أنه لو كتبت له
    100
    أو
    1900
    لن يقبله وسوف يقول لك أن هذا خطا !!






    مازن مليباري غير متواجد حالياً



  6. الأاخ المبرمج هل يمكن أن ترسل الدرس لي على العنوان
    maz7@dr.com





    مازن مليباري غير متواجد حالياً

  7. #7
    عضو نشيط جدا
    تاريخ التسجيل
    Aug 2000
    المشاركات
    530


    الأخ مازن مليباري ..

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

    ------------------
    http://www.ArabBuilder.com





    mubarmej غير متواجد حالياً

  8. #8
    عضو نشيط جدا
    تاريخ التسجيل
    Aug 2000
    المشاركات
    530


    عفوا الأخ مازن .. لقد فهمت المطلوب الآن هذا هو الحل :
    <BLOCKQUOTE> <font> كود: </font> <div align="ltr"> <center> <table border="0" width="80%" dir="ltr" bgcolor=="#000000"> <tr> <td width="100%"> <pre> <font color="#ffffff">
    if (($StartCounter eq "") &#0124; &#0124; ($StartCounter =~ m/[^0-9]/)) {
    print "Error";
    exit;
    }
    </font> </pre> </td> </tr> </table> </center> </div> </BLOCKQUOTE>

    ------------------
    http://www.ArabBuilder.com





    mubarmej غير متواجد حالياً





ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض