![]() |
|
درس سريع - التعامل مع الآسكي Ascii - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغات البرمجة الاخرى (http://vb4arb.com/vb/forumdisplay.php?fid=4) +--- قسم : قسم لغة vb6.0 (http://vb4arb.com/vb/forumdisplay.php?fid=18) +---- قسم : قسم مقالات vb6.0 (http://vb4arb.com/vb/forumdisplay.php?fid=29) +---- الموضوع : درس سريع - التعامل مع الآسكي Ascii (/showthread.php?tid=5596) |
درس سريع - التعامل مع الآسكي Ascii - RaggiTech - 14-10-12 كاتب الموضوع : أحمد جمال
ما هو
Ascii ؟
هو اختصار لـ American Standerd Code for Information Interchange أو الشفرة الأمريكية القياسية لتبادل المعلومات .
وهي رموز تقابل الأحرف الهجائية والرموز والأرقام وغير ذلك ، فنجد أن 65 في Ascii تمثل حرف a و 66 تمثل b وذلك حتى z ، كما تبدأ الأحرف A من رقم 92 ، أما الأرقام فهي بين 49 للصفر و 58 للتسعة . ويشكل هذا النظام أسلوب قياسي للترميز بين منتجي ومشغلي نظم الحاسب ، وحتى لا يحصل تعارض بين ما ينقل بين النظم المختلفة . وفي فيجوال بيسك ، يقنص الحدث KeyPress الزر المضغوط من الكيبورد ويعطيه لك في متغير اسمه KeyAscii يحتوي على الرمز المقابل للزر المضغوط ، وذلك في كل الأدوات التي تحتوي على مثل هذا الحدث Event . وسنستغل هذا الموضوع لتطبيق حقل لا يقبل إلا أرقاماً فقط - حقل العمر مثلاً - . هنا سوف نعتمد على حدث Key_Press ، فعندما تكون الازرار المضغوطة أرقام فهذا يعطينا من 49 للصفر وحتى 58 للتسعة ، لذا سوف نتأكد من أن هذا المتغير يحتوي على قيمة بينهما ، وذلك بالشكل التالي : كود : If KeyAscii < 48 Or KeyAscii > 59 Thenفي حالة تحقق هذا الشرط فهذا معناه ان الزر المضغوط ليس برقم لذا فينبغي اصدار صوت تحذيري عن طريق الأمر Beep .
الخطوة الثانية هي حذف آخر الحروف ادخالاً . بذلك يصبح الكود : كود : If KeyAscii < 48 Or KeyAscii > 59 Thenحيث أن 0 ترمز لـ NULL . والآن لا تنس النقاط التالية : * لا تنس أن بعض الحقول الرقمية لا بد أن تقبل الفاصلة .
* لا تنس أيضاً أن المستخدم قد يحتاج إلى لصق النص باستخدام Ctrl+V لكنك لن تمكنه من ذلك . وفي المقابل قد يكتب المستخدم نصاً يحتوي على حروف في مكان ما وينسخه ليقوم بلصقه من خلال القائمة في برنامجك ، ولن يستطيع برنامجك المسكين منعه مما يريد .
لحل المشكلة الأولى نستثني الرقم المقابل للفاصلة في Ascii ، ولكن لا تنس أنه ليس بالامكان اضافة أكثر من فاصلة .
لحل المشكلة الثانية قم باضافة حدث التأكد في الحدث Change والذي ينطلق في حالة تغير محتوى مربع النص . والله الموفق .. والسلام عليكم ورحمة الله وبركاته . |