(19-09-19, 05:49 PM)maxruined كتب : [ -> ]السلام عليكم
خطرت فى بالي فكره برنامج تشفير بسيط بس فى الحقيقه لما جيت انفذ البرنامج معرفتش اعمله ازاى
والفكره كالاتى :-
فكره البرنامج انك تدخل اي جملة مثلا كلمة MAX
والمفروض تبقي بعد التشفير كدا 13124
والفكره ببساطه ان اخد كل حرف مع القيمه المساويه له بمعني اخر
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
رتبه الحرف M هى 13 وربته الحرف A هى 1 وربته الحرف X هى 24 وبكدا اصبح الاسم بعد التشفير = 13124
بتمني من اى حد من اساتذتنا الكبار يساعدونى فى فكره عمل برنامج التشفير دا
ولكم جزيل الشكر
لتبسيط الامور عليك وجعل الامور ابسط معك
فهنا يجب النظر الى نقطة مهمة جداً وهى التالى
فى البداية يجب النظر فى الاعداد لعدد الاحرف
حتل الاجمالى هو عبارة عن آحاد او هى عشرات
طيب بعد النظرفان العدد يتجاوز الـ 9 ولا يزيد عن 99
فاصبح الاجمالى هنا هو عشرات
بعد اخذ بهذا الاعتبار فناتى للخطوة وهو توحيد الترقيم ليكون جميعهم يحمل عشرات
بحيث رقم 1 يصبح 01 ليكون العد من 01 الى 09 أو يفضل ان يكون 00 : 09
وبما اننا قلنا سنبداء العدد من 00 يعنى سيكون الاجمالى بنهاية العد هو 25
ليكون الشكل النهائي 01 02 03 : 25
طيب بعد اتمام هذه النظرية ايه العامل المستفيد منه هنا
العامل الايجابي هنا هو عند تحويل كلمة كمثال MAX الى 130124
هيتم عمل Split للقيمة كل رقمين فهنا هنفهم ان 13 تعنى M و 01 تعنى A
بكده مش هتحس باى متاهة عند تحويل الاحرف التالية
A B C D E F G H I J
الى ان تكون عبارة عن
9 8 7 6 5 4 3 2 1 0
لان الشكل سيصبح
09 08 07 06 05 04 03 02 01 00
طيب هبسط عليك الامر بعد الشرح ده بالكود للاحرف الانجليزية مع المسافة
فكل ما عليك اذا فهمت الشرح الذى ذكرته ان تضيف الاحرف العربية و الارقام
وتقوم باضافتها بالرد هنا منها ليستفاد الجميع وايضاً منها اعلم ان الصورة وضحت والكود مبسط معك
انا حاولت ابسط الكود واجعله بسيط جداً كان بامكان اختصار الكود الذى ساضعه وابسط الامور اكثر
ولكن قد لا تفهم كيف تم الامر ووضيفة الكود ولتبسيط الامور وسهولة فهم كل سطر من الكود
اليك الكود
فى البداية قم باضافة التالى خارج نطاق اى حدث
كود :
//تعريف الاحرف والارقام التى يتم التحويل بينهم
string[] abc = new string[] { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", " " };
string[] num = new string[] { "00", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26" };
بعد ذلك قم باضافة التالى
كود :
//كود التشفير
private string StNb(string text)
{
text = text.ToUpper();
string mykey = null;
for (int a = 0; a < text.Count(); a++)
for (int b = 0; b < abc.Count(); b++)
if (text.Substring(a, 1) == abc[b])
mykey += text.Substring(a, 1).Replace(abc[b], num[b]);
return mykey;
}
//كود فك التشفير
private string NbSt(string text)
{
string mykey = null;
for (int a = 0; a < (text.Count() / 2); a++)
for (int b = 0; b < num.Count(); b++)
if (text.Substring(a * 2, 2) == num[b])
mykey += text.Substring(a * 2, 2).Replace(num[b], abc[b]);
return mykey.ToLower();
}
الان تعال عن حدث التنفيذ بتنفيذ التالى للتشفير
كود :
textBox2.Text = StNb(textBox1.Text);
وفى حدث فك التشفير كل ما عليك تنفيذ التالى
كود :
textBox3.Text = NbSt(textBox2.Text);
للتوضيح انا جعلت اى احرف تكتب بالانجليزية اذا كانت كبيرة او صغيرة سيقوم بتنفيذ الامر
واذا كنت تريد استقرار الامر بحيث الحرف الكبير يبقي كبير والعكس فكل ما عليك اضافة الاحرف الصغيرة
وازالة كلاً من التالى طبعاً مع معالجة وظيفتهم