أخواني الكرام
السلام عليكم ورحمة الله وبركاتة
من خلال مشاركتي مع استاذتنا الفاضلة زهرة جزاها الله خيراً استعملت الاخت الغالية زهرة كود لتحويل الحروف الي أرقام من خلال أرقام الآسكي كود وبيني وبينكم دفعني الفضول في البحث علي Google وفي المنتديات عن أي معلومة تفيد عن تعلم أرقام الآسكي كود وكمان استحيت من كثرة الاسئلة لمشرفتنا الغالية وتركتها لحل مشاكل الاعضاء وقلت احاول ولو ما وصلتش لمعلومة سأضطر لسؤالها لان الفضول دفعني لكي اعرف ما هي أرقام الآسكي كود أيضا لان هذه الارقام حلت مشكله كبيرة وعويصة يستعصي الاستعلامات العادية حلها فجائتني فكرة تقديم درس بسيط يحتوي علي شرح بسيط من خلال بحثي
عن ما هي ارقام الآسكي كود وما هي وظيفتها .........
اولا يجب ان نعلم ان لكل حرف في لوحة المفاتيح رقم خاص به محصور بين الصفر و 255 بحيث لايتعامل الكمبيوتر مع غير هذا المجال ومثلاً الحرف "A" يقابله الرقم 65 بينما الحرف "a" له الرقم 97 ... ونلاحظ من ذلك ان للحرف A رقمان الاول للحرف الصغير و الآخر للحرف الكبير ... وكذلك الحال مع باقي الحروف و الازرار في لوحة المفاتيح ... وهو ما يسمى الاسكي كود للحرف (ASCII Code) ...
ويوجد دالتان مهمتان في الفجيوال للتعامل مع الاسكي وهما :
Asc()
Chr()
حيث ان الدالة Asc تحول النص الى رقم الاسكي اي ان ناتج :
Asc("A") = 65
وتقوم الدالة Chr بعكس العمل اي انها تحول الرقم الى حرف مثلاً :
Chr(97) = "a"
ومما سبق نعرف كيف نستلم نص ونحوله الى ASCII ومن ثم نعيده ...
ودعنا الان نتعرف سوياً على المعامل XOR حيث انه عبارة عن معامل مثل OR و AND ....
ونحن نعرف انه اذا كان لدينا شرطان مثلاً C1 و C2 واستخدمنا AND فلن يكون النتاج صحيح الا اذا كان الشرطان صحيحان مثلاً :
If C1 AND C2 Then MsgBox "صحيح"
وبذلك لن تظهر الرسالة الا اذا كان الشرطان صحيحان اما اذا استخدمنا المعامل OR لاظهار نفس الرسالة بالشكل التالي :
If C1 OR C2 Then MsgBox "صحيح"
فالرسالة لن تظهر اذا كان كلا الشرطان او احدهما صحيحاً ...
ولكن استخدام المعامل XOR يجعل الرسالة تظهر في حالة واحدة وهي ان لايستاوى الشرطان اي انه اذا كان احد الشرطان صحيح والآخر خطاء فان الرسالة ستظهر :
If C1 XOR C2 Then MsgBox "صحيح"
واما اذا كان الشرطان صحيحان او اذا كان الشرطان غير صحيحان فان الرسالة لن تظهر فهي تظهر في حالة ان احد الشرطان صحيح ...
وذلك هو مقارنة المعامل XOR مع المعاملات المعروفة And,OR ولكن لهذا المعامل خاصية فريدة جداً جعلت منه معاملاً مميزاً ... سوف نناقشها هنا ..
كل المعاملات السابقة يمكنك استخدامها لمقارنة رقمان فمثلاً اذا كان لدينا الرقم 121 واردنا مقارنته مع الرقم 34 باستخدام المعاملات الثلاثة السابقة كالتالي :
Print (121 And 34) ' = 32
Print (121 Or 34) ' = 123
Print (121 Xor 34) ' = 91
فسوف تلاحظ ان الناتج من المقارنة بـ AND تعطي الرقم 32 والمقارنة بـ OR تعطي الرقم 123 ,واما المقارنة بـ XOR فتعطي الرقم 91 وكل هذة الارقام هي ارقام نتجت من مقارنات هندسية لا اجد داعي لذكرها هنا وما يهمنا الان هو النتائج ... فهل توحي لك النتائج بشيء ؟ .... طبعاً لا فهي عبارة عن ارقام عادية !!!
طيب قارن الان الارقام الناتجة بالرقم 34 مرة اخرى بالشكل التالي :
Print (32 And 34) ' = 32
Print (123 Or 34) ' = 123
Print (91 Xor 34) ' = 121
اذا نظرت للنتائج فانها بالترتيب 32 و 123 و 121 ...... ويمكنك الان ان تلاحظ ان الناتج من المقارنة XOR اعطى لنا القيمة 121 وهي القمية الاولى التي قارناها سابقا مع الرقم 34 اي ان :
121 XOR 34 = 91
91 XOR 34 = 121
وهذة هي الخاصية المميزة فيه ... حيث انك اذا استلمت ملف نصي ثم حولت كل حرف فيه الى رقم الاسكي باستخدام الدالة Asc() كما سبق ثم بعد ذلك قارنت الرقم بواسطة الـ XOR باي رقم تختاره انت ولنفرض 12 ... فانه سوف تنتج لك ارقام حولها الى حروف بواسطة الدالة Chr ثم اعيدها الى الملف ... وبعد ان تنتهي من كل الحروف في الملف سوف تجد انه لديك ملف نصي بحروف غريبة نتجت عن المقارنة .....
وبعدها عندما تريد استاعدة بياناتك قم بمقارنة حروف الملف المشفر بنفس الرقم (12) وبالتالي فسوف ينتج الحرف الاصلي لان المعامل XOR يمتلك خاصية الاستعادة كما حدث مع الرقم 121 في مثالنا السابق ....
طبعاً انت لن تقارن الحروف مع رقم واحد هو 12 بل يمكنك ان تستخدم كلمة سر ثم تحولها الى ارقام تقارنها مع الملف كي يقوم بالتشفير ثم تقارنها بالملف المشفر مرة اخرى لتستعيد بياناتك ...
و هنا بالنظر لو أردنا الإختصار في الماضي ...
نجد أن الحروف من A-Z والحروف من a-z في اللغه الإنجليزيه ..
نجد أن رقم الحرف في النظام العشري والنظام الثنائي كما يلي ..
هذه هي الحروف الكبيرة وما يقابلها من ارقام الآسكي كود
( A = 65 = 01000001 )
( B = 66 = 01000010 )
( C = 67 = 01000011 )
( D = 68 = 01000100 )
( E = 69 = 01000101 )
( F = 70 = 01000110 )
( G = 71 = 01000111 )
( H = 72 = 01001000 )
( I = 73 = 01001001 )
( J = 74 = 01001010 )
( K = 75 = 01001011 )
( L = 76 = 01001100 )
( M = 77 = 01001101 )
( N = 78 = 01001110 )
( O = 79 = 01001111 )
( P = 80 = 01010000 )
( Q = 81 = 01010001 )
( R = 82 = 01010010 )
( S = 83 = 01010011 )
( T = 84 = 01010100 )
( U = 85 = 01010101 )
( V = 86 = 01010110 )
( W = 87 = 01010111 )
( X = 88 = 01011000 )
( Y = 89 = 01011001 )
( Z = 90 = 01011010 )
هذه هي الحروف الصغيرة وما يقابلها من ارقام الآسكي كود
( a = 97 = 01100001 )
( b = 98 = 01100010 )
( c = 99 = 01100011 )
( d = 100 = 01100100 )
( e = 101 = 01100101 )
( f = 102 = 01100110 )
( g = 103 = 01100111 )
( h = 104 = 01101000 )
( i = 105 = 01101001 )
( j = 106 = 01101010 )
( k = 107 = 01101011 )
( l = 108 = 01101100 )
( m = 109 = 01101101 )
( n = 110 = 01101110 )
( o = 111 = 01101111 )
( p = 112 = 01110000 )
( q = 113 = 01110001 )
( r = 114 = 01110010 )
( s = 115 = 01110011 )
( t = 116 = 01110100 )
( u = 117 = 01110101 )
( v = 118 = 01110110 )
( w = 119 = 01110111 )
( x = 120 = 01111000 )
( y = 121 = 01111001 )
( z = 122 = 01111010 )
ومن هنا يتضح لنا امور كثيرة ان بعض المعادلات والمقارنات الذي يستعصي معالجتها بالطرق العادية يمكننا الاستعانة بإرقام الآسكي كود لحل غباء الحاسب الالي
وأخيرا يا أختنا الغاليه زهرة شكراً لكي لانارة لنا الطريق دائما وبرجاء مراجعة الكلام اللي مكتوب يمكن يكون فيه حاجات وغلط وكمان منتظرين معلومات وافية وشامله واضافة لهذه المشاركة البسيطة من جانبك لكي نستفيد من خبرتك الواسعة
وهنا لكم برنامج بسيط مفيد في معرفه اليوني كود للحرف ..( في الملف المرفق )
ملف مرفق(ملفات)
viewascii.zip (4.16كيلو )