OnWorks Linux و Windows Online WorkStations

الشعار

استضافة مجانية على الإنترنت لمحطات العمل

<السابق | المحتويات | التالي>

التحقق من صحة الإدخال

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


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

هنا لدينا مثال على برنامج يتحقق من صحة أنواع مختلفة من المدخلات:



#! / بن / باش

# read-validate: التحقق من صحة الإدخال غير صالح_input () {

صدى "إدخال غير صالح '$ REPLY'"> & 2 خروج 1

}


read -p "أدخل عنصرًا واحدًا>"


# الإدخال فارغ (غير صالح)

[[-z $ REPLY]] && غير صالح_إدخال


# الإدخال عبارة عن عناصر متعددة (غير صالح)

(($ (echo $ REPLY | wc -w)> 1)) && غير صالح_إدخال


# هل الإدخال اسم ملف صالح؟

إذا [[$ REPLY = ~ ^ [- [: alnum:] \ ._] + $]] ؛ ثم صدى "'$ REPLY' هو اسم ملف صالح.

إذا [[-e $ REPLY]] ؛ من ثم

صدى "والملف '$ REPLY' موجود."

آخر

صدى "ومع ذلك ، الملف '$ REPLY' غير موجود."

fi


# هو إدخال رقم الفاصلة العائمة؟

إذا [[$ REPLY = ~ ^ -؟ [[: digit:]] * \. [[: digit:]] + $]]؛ ثم صدى "'$ REPLY' هو رقم فاصلة عائمة."

آخر

صدى "'$ REPLY' ليس رقمًا فاصلة عائمة."

fi


# هو إدخال عدد صحيح؟

إذا [[$ REPLY = ~ ^ -؟ [[: digit:]] + $]]؛ ثم صدى "'$ REPLY' هو عدد صحيح."

آخر

صدى "'$ REPLY' ليس عددًا صحيحًا."

#! / بن / باش

# read-validate: التحقق من صحة الإدخال غير صالح_input () {

صدى "إدخال غير صالح '$ REPLY'"> & 2 خروج 1

}


read -p "أدخل عنصرًا واحدًا>"


# الإدخال فارغ (غير صالح)

[[-z $ REPLY]] && غير صالح_إدخال


# الإدخال عبارة عن عناصر متعددة (غير صالح)

(($ (echo $ REPLY | wc -w)> 1)) && غير صالح_إدخال


# هل الإدخال اسم ملف صالح؟

إذا [[$ REPLY = ~ ^ [- [: alnum:] \ ._] + $]] ؛ ثم صدى "'$ REPLY' هو اسم ملف صالح.

إذا [[-e $ REPLY]] ؛ من ثم

صدى "والملف '$ REPLY' موجود."

آخر

صدى "ومع ذلك ، الملف '$ REPLY' غير موجود."

fi


# هو إدخال رقم الفاصلة العائمة؟

إذا [[$ REPLY = ~ ^ -؟ [[: digit:]] * \. [[: digit:]] + $]]؛ ثم صدى "'$ REPLY' هو رقم فاصلة عائمة."

آخر

صدى "'$ REPLY' ليس رقمًا فاصلة عائمة."

fi


# هو إدخال عدد صحيح؟

إذا [[$ REPLY = ~ ^ -؟ [[: digit:]] + $]]؛ ثم صدى "'$ REPLY' هو عدد صحيح."

آخر

صدى "'$ REPLY' ليس عددًا صحيحًا."

التحقق من صحة الإدخال


فاي آخر

صدى "السلسلة '$ REPLY' ليست اسم ملف صالحًا."

fi

فاي آخر

صدى "السلسلة '$ REPLY' ليست اسم ملف صالحًا."

fi


يطالب هذا البرنامج النصي المستخدم بإدخال عنصر. يتم تحليل العنصر لاحقًا لتحديد محتوياته. كما نرى ، يستخدم البرنامج النصي العديد من المفاهيم التي قمنا بتغطيتها حتى الآن ، بما في ذلك وظائف الصدفة ، [[]], (())، عامل التحكم

&& ، و if ، بالإضافة إلى جرعة صحية من التعبيرات العادية.


أفضل الحوسبة السحابية لنظام التشغيل في OnWorks: