الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف أمنع إدخال غير الأرقام ؟

مغلق
بدأه Hack×Crack في 16 أغسطس 2006 · 4 رد · 649 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

مرحبا إخواني مبرمجي السي شارب

أنا أقوم ببرمجة برنامج على الكونسول Console

ويقوم بحساب معادلات .. انتهيت منه الآن تقريبا ..

ولكن أريد أن يستعمل المستخدم الأرقام فقط

لأنه الآن إن أدخل حرفا أو رمزا , فإن البرنامج يعطيه رسالة من إطار الدوت نت بحدوث خطأ برمجي ويتوقف البرنامج , فأريد سد هذه الثغرة بأسرع وقت ممكن

المطلوب باختصار :

إذا أدخل المستخدم حرفا أو رمزا .. يعطيه رسالة بأن الإدخال خاطئ , أو يمنعه من كتابة الأحرف كليا من البداية

ملاحظة : أنا أعمل على الكونسول , أي ليس هناك أداة نص ومربع نص أو خيارات للأداة .. أي أن التطوير يجب أن يكون بالكود

أرجوكم لا تبخلوا علي بمعلوماتكم

#2

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

انا مبتدئ ايضا

بما انك فى Consol

لذلك لايمكن منع المستخدم من كتابة الحروف على ما اعتقد , انما يمكن مقارنة قيمة الادخال بشكل يتم بنائه فى

Regular Expression

على سبيل المثال بعد تعريب الاسم الخاص بها اولا

Using System.text.RegularExpression.....

تقوم بتعريف ragex

Ragex rg= new Ragex(@"\w"); // \w mean match any word character

وبعد استقبال ادخال المتسخدم فى string

string stuser= console.readline(); //here will get the stuser from the user input

وبعد كده تقوم بعمل شرط لمقارنة دخل المستخدم والشكل الذى تريده

if(re.Match(stuser)) // if the input equal digits

{

the input is not int

and there is some word character

}

else

{

the input is int

}

واخير انا مش كاتب الكود ده فى Compiler

انا كاتبه هنا بس يعنى اكيد فى اخطاء لغوية بس ان شاء الله مش كتيرة

:)

#3

الكود فيه خطأ في المقارنة .. عند السطر

if (re.Match(stuser)

ويعطيني هذا الخطأ

Cannot implicitly convert type 'System.Text.RegularExpressions.Match' to 'bool' CS0029

وبصراحة أنا ما فهمت إيش معنى الكود بالضبط عشان كده ماني عارف أصححه

وبالنسبة للأخطاء الإملائية الأخرى فقد صححتها ولم يبقى غير خطأ المقارنة

#4

السلام عليكم،

لقد يمكنك استخدام DigitsConsole لقد قمت بكتابتها لك ولمكتبتي الخاصه :lol:

سوف تجد في المف المضغوط ملفان الملف الثاني هو مثال يشرح كيف استخدام الكلاس .

فهي بسيطه جدا في استخدامها .

DigitConsole.zip

تم تعديل هذه المشاركة بواسطة da-crystal في 18 أغسطس 2006 في 10:02

لا مستحيل غير الوقت

#5

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

كما قولتك فانى لم اكتب البرنامج فى الـ Compiler

وهذا هو البرنامج بعد التصحيح وكتابته فى الـ Compiler

Regex rg= new Regex(@"\D"); // to define the regex

string stuser= Console.ReadLine(); // to read from the user

if(rg.IsMatch(stuser))// to check the user input

//هنا يمكن وضع الاكواد اللى تحدث عند الادخال الغير رقمى

Console.WriteLine("none Digit");// if the input is wrong

else

//هنا يمكن وضع الاكواد اللى تحدث عند الادخال الرقمى الصحيح

Console.WriteLine("Digit");// if the input is right

وشكرا

تم تعديل هذه المشاركة بواسطة maxoizs في 19 أغسطس 2006 في 12:03

هذا الموضوع مغلق.

مواضيع مشابهة