|
كيف أستطيع تلوين كل حرف (للغة العربية) بلون عشوائي (التعليمات فقط)؟
شكر جزيل لنيوهورايزن حيث أنه صاحب فكرة هذا الأمر
في هذا الدرس أنا لن أقوم بشرح أي تفاصيل، كل ما سوف أقوم بفعله
هو شرح كيفية استخدام الأمر
في الصندوق أسفل الصفحة سوف تجد الأوامر جاهزةً لك لتقوم بوضعها في رموت الام آي آر سي
عندئذٍ فمن المفترض أن يتم تشغيل هذه الأوامر ان لم يكن الرموت في حالة ايقاف
لاحظ أن هذا الأمر يستخدم فقط للغة العربية و قد يبدو الكلام بصورة خاطئة إذا تم استخدام الأحرف الانجليزية
تأكد من أن تعيد تشغيل الام آي آر سي بعد وضع هذه الأوامر في الرموت
on *:START:{ create_ascii_list }
alias create_ascii_list {
if (!$hget(arabic_ascii)) { hmake arabic_ascii 50 }
hadd arabic_ascii 193 ء ء ء
hadd arabic_ascii 194 آ آ آ
hadd arabic_ascii 195 أ أ أ
hadd arabic_ascii 196 ؤ ؤ ؤ
hadd arabic_ascii 197 إ إ إ
hadd arabic_ascii 198 ئ ئ ئ
hadd arabic_ascii 199 ا ا ا
hadd arabic_ascii 200 ب ب ب
hadd arabic_ascii 201 ة ة ة
hadd arabic_ascii 202 ت ت ت
hadd arabic_ascii 203 ث ث ث
hadd arabic_ascii 204 ج ج ج
hadd arabic_ascii 205 ح ح ح
hadd arabic_ascii 206 خ خ خ
hadd arabic_ascii 207 د د د
hadd arabic_ascii 208 ذ ذ ذ
hadd arabic_ascii 209 ر ر ر
hadd arabic_ascii 210 ز ز ز
hadd arabic_ascii 211 س س س
hadd arabic_ascii 212 ش ش ش
hadd arabic_ascii 213 ص ص ص
hadd arabic_ascii 214 ض ض ض
hadd arabic_ascii 216 ط ط ط
hadd arabic_ascii 217 ظ ظ ظ
hadd arabic_ascii 218 ع ع ع
hadd arabic_ascii 219 غ غ غ
hadd arabic_ascii 221 ف ف ف
hadd arabic_ascii 222 ق ق ق
hadd arabic_ascii 223 ك ك ك
hadd arabic_ascii 225 ل ل ل
hadd arabic_ascii 227 م م م
hadd arabic_ascii 228 ن ن ن
hadd arabic_ascii 229 ه ه ه
hadd arabic_ascii 230 و و و
hadd arabic_ascii 236 ى ى ى
hadd arabic_ascii 237 ي ي ي
}
alias arabic_colours {
var %m = $len($1-)
while (%m) {
if ($hget(arabic_ascii,$asc($mid($1-,%m,1)))) {
var %arabic_chr = $hget(arabic_ascii,$asc($mid($1-,%m,1)))
if ($asc($mid($1-,$calc(%m + 1),1)) == $null) || ($asc($mid($1-,$calc(%m + 1),1)) == 32) {
if ($asc($mid($1-,$calc(%m - 1),1)) == $null) || ($asc($mid($1-,$calc(%m - 1),1)) == 32) {
var %s = %s $+ $chr(3) $+ $r(2,7) $+ $mid($1-,%m,1)
}
else {
if ($regex($asc($mid($1-,$calc(%m - 1),1)),193|194|195|196|197|199|201|207|208|209|210|230|236)) {
var %s = %s $+ $chr(3) $+ $r(2,7) $+ $mid($1-,%m,1)
}
else { var %s = %s $+ $chr(3) $+ $r(2,7) $+ $gettok(%arabic_chr,3,32) }
}
}
else {
if ($asc($mid($1-,$calc(%m + 1),1)) == 193) { var %s = %s $+ $chr(3) $+ $r(2,7) $+ $iif($asc($mid($1-,$calc(%m - 1),1)) == 32 || $asc($mid($1-,$calc(%m - 1),1)) == $null,$mid($1-,%m,1),$gettok(%arabic_chr,3,32)) }
else {
if ($calc(%m - 1) == 0) {
var %s = %s $+ $chr(3) $+ $r(2,7) $+ $gettok(%arabic_chr,1,32)
}
else { var %s = %s $+ $chr(3) $+ $r(2,7) $+ $gettok(%arabic_chr,$iif($regex($asc($mid($1-,$calc(%m - 1),1)),32|193|194|195|196|197|199|201|207|208|209|210|230|236),1,2),32) }
}
}
}
else {
if ($asc($mid($1-,%m,1)) == 32) { var %s = %s $+ $chr(160) }
else { var %s = %s $+ $chr(3) $+ $gettok(02 03 04 05 06 07,$r(1,6),32) $+ $mid($1-,%m,1) }
}
dec %m
}
return $replace(%s,$chr(160),$chr(32))
}
on *:INPUT:*:{ if ($left($1,1) != /) { var %g = 1 | while (%g <= $0) { if ($asc($left($gettok($1-,%g,32),1)) isnum 65-90) || ($asc($left($gettok($1-,%g,32),1)) isnum 97-122) { var %arsa = $calc(%g - %inc) $+ - $calc(%g - 1) | var %say = %say $arabic_colours($gettok($1-,%arsa,32)) | var %say = %say $ [ $+ [ %g ] ] | unset %inc } | else { inc %inc } | inc %g } | var %arsa = $calc(%g - %inc) $+ - $calc(%g - 1) | var %say = %say $arabic_colours($gettok($1-,%arsa,32)) | say %say | unset %inc | halt } }
|
لاحظ أن بعض الأحرف العربية قد لا تظهر بصورة صحيحة، سوف أقوم بعمل تحسينات على الأمر قريباً بإذن الله
هناك شيء آخر أود أن تعرفه و هو أن
الاوامر تحتوي بعض الأحرف الخفية التي لا تستطيع أن تراها، لذلك فعند التعامل مع هذه الأوامر
تأكد من أنك تقوم بنسخها بالكامل دون أي نقص حتى تعمل بالشكل المطلوب
أي استفسار؟
goblin@arabchat.org
العودة إلى الصفحة الرئيسية
|