• 0
MODA88

طلب اضافة لكود (#C) يقوم بتحليل وتشفير نص مدخل

سؤال

السلام عليكم ورحمة الله وبركاته ,,,

 

 

اخوكم في الله المهندس محمد حافظ خريج هندسة حاسب وهاوي لأمن المعلومات والتشفير

الطلب هو لأمر شخصي مهم جداً بالنسبة لي.. لذلك اتمنى المساعده,,

 

 

اريد القيام بكتابة برنامج يقوم بتغيير النص المدخل له وتحليله بحساب عدد تكرار كل حرف وجد بالنص المدخل

هذه الخطوة قمت بكتابتها والتاكد منها ولله الحمد بالرغم انني جديد على لغة البرمجة #C

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace WindowsFormsApplication1{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        private void button1_Click(object sender, EventArgs e)        {            String stringInput = StringBox.Text;            List<string> outputString = new List<string>();            char[] chrs = stringInput.ToCharArray();            for (int i = 0; i < chrs.Length; i++)            {                if (chrs[i].ToString() != " ")                {                    var s = chrs[i].ToString().ToUpper() + " => " + Occurence(stringInput, chrs[i]);                    if (outputString.IndexOf(s) == -1)                    {                        outputString.Add(s);                    }                }            }            output.Text = string.Join("\r\n", outputString);        }        private int Occurence(string text, char chr)        {            int i = 0, count = 0;            while ((i = text.IndexOf(chr, i)) != -1)            {                count++;                i++;            }            return count;        }    }}

المطلوب الآن هو:

 

 

1- طباعة الآسكي كود لكل حرف تم استخراجه من النص

 

2- عمل ازاحة للأحرف بعدد معين من الخانات اقوم بادخاله 

 

مثال على ذلك

لو قمنا بادخال النص : ABCD

وقمنا باختيار عدد ازاحة بمقدار : 1

 

 

فان الناتج يكونBCDE

 

 

هذا وجزاكم الله خيراً أجمعييييين

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

2 إجابة على هذا السؤال .

  • 0

الأخ صاحب السؤال :

اخي لم تحدد نوع الإزاحة التي تريدها وجهتها ؟؟ " يمينية أم يسارية "

على كل : 

يمكنك إستخدام معامل الإزاحة على مستوى البت BitWise Shift Operetor المضمن في لغة C#

 

<< لليمين او >> لليسار

مثال 

x << 1

هنا ستتم عمل إزاحة لل x مقدار 1 بت " بت وليس بايت انتبه "

 

اما بخصوص سؤالك الأول :

اخي العزيز يبدوا انك لاتعرف ان في اي لغة برمجة في العالم النوع char هو في الحقيقة نوع من الانواع الرقمية وليس النصية اي اللغة في الحقيقة تتعامل مع ال char على اساس رقمي وليس نصي 

لذلك يمكنك عندما تحول سلسلة نصية إلى مصفوفة محارف ان تطبع مباشرة القيمة الرقمية الحقيقية لل char بدلاً من التمثيل النصي له عن طريق الميثود GetBytes من الكلاس Encoding 

مثال 

 

Encoding.Unicode.GetBytes(X);                    a

 

هذا الكلاس موجود في الكلاس الرئيسي Text الموجودة بدوره في الآسمبلي System

اي يصبح المجال الكامل System.Text.Encoding.Unicode.GetBytes(x)             0

 

 

 

الأخت التي سئلت : هذا السؤال للأخ لذلك يجب ان تقومي بفتح سؤال آخر جديد لا ان تطرحي سؤالك في اسئلة الآخرين !!!!!

بالتوفيق ان شاء الله

2

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
هكذا تقوم بطباعة آسكي كل حرف : 
string s = "9quali52ty3";
byte[] ASCIIValues = Encoding.ASCII.GetBytes(s);
foreach(byte b in ASCIIValues) {
Console.WriteLine(b);
}
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .