تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
byte[] <-> string[] Converter
#1
السلام عليكم اخواني الاعزاء ..
في هذا الموضوع ساتناول طريقة تحويل اي ملف الى ملف نصي يتكون من ارقام ...
و ارجاعه الى وضعه الاصلي ..
كل هذا باستخدام الـ Split في النصوص .. و حلقات التكرار (for/foreach)


للتحويل من اي ملف الى نص .. و من ثم كتابة الملف النصي ( تشفير )
كود :
// Converting byte[] To string[]
// ...
// ...
try{
string path=@"C:\Users\uesr\Desktop\K.S.jpg"; //File Path
           byte[] Bytes = System.IO.File.ReadAllBytes(path); //Reading Bytes
           string ConvertedText = System.IO.Path.GetExtension(path) +"#"; //I Use This To Get The File Extension When Converting The File Again
           foreach (byte b in Bytes) {
           ConvertedText+=Convert.ToString(b)+" ";
           }
           ConvertedText = ConvertedText.Substring(0, ConvertedText.Length - 1); //Now .. This's The Converted Bytes
           System.IO.File.WriteAllText(@"C:\Users\uesr\Desktop\BytesText.txt", ConvertedText); //Writing Converted Bytes
Console.WriteLine("Done ... :)");Console.Read();}
catch{Console.WriteLine("Error");Console.Read();}

و للتحويل من الملف النصي الى اي ملف ( فك تشفير )
كود :
Converting string[] To byte[]
// ...
// ...
try{
string path = @"C:\Users\uesr\Desktop\BytesText.txt";//BytesText File Path
            string ConvertedText = System.IO.File.ReadAllText(path);//Getting BytesText
            string FileExtension = ConvertedText.Substring(0, ConvertedText.IndexOf("#"));//Getting File Extension
    int StringIndex=FileExtension.Length+1;// I Can't Explain It :|
    ConvertedText = ConvertedText.Substring(StringIndex,ConvertedText.Length-StringIndex); // I Can't Explain This Too :| :/
            string [] Splits=ConvertedText.Split(); // Getting An Array With Bytes Converted To String ..
    byte[] FileBytes = new byte[Splits.Length];//This Array To Set File Bytes To It ..
    for (int i = 0; i <= Splits.Length - 1; i++) {
        FileBytes.SetValue(Convert.ToByte(Splits[i]), i); //Setting Values
    }
    System.IO.File.WriteAllBytes(@"C:\Users\uesr\Desktop\FileAgain" + FileExtension,FileBytes);//Writing File ..
    Console.WriteLine("Done ... :)"); Console.Read();}
catch{Console.WriteLine("Error");Console.Read();}



تحياتي


اخوكم علي
الشمس اجمل في بلادي من سواها .. و الظلام
حتى الظلام هناك اجمل فهو يحتضن العـــراق :o
الرد }}}}
تم الشكر بواسطة:
#2
السلام عليكم اخي الكريم

بارك الله فيك لكن كما تعلم ان هذا قسم المقالات فيا حبذا لو وضعت شرحا مبسطا لكي تعم الفائدةSmile

بار ك الله فيك
الرد }}}}
تم الشكر بواسطة:
#3
و عليكم السلام اخي الكريم ..
اسف لاني لم اضع اي شرح (مستعجل هههههههه)
هذا شرح بسيط اتمنى ان يوضح الفكرة ..
الفكرة هي .. :
كلنا نعلم ان كل ملف في الجهاز يتكون من بايتات ( Bytes )
و تكبر البايت الى كيلو بايت KB و ميجا بايت MB و .. الخ ..
كل بايت تتكون من رقم معين ..
و لقراءة البايتات .. يمكننا استعمال الكود الاتي :
كود :
System.IO.File.ReadAllBytes(@"Path");
و اما لكتابة البايتات .. يمكننا استعمال الكود الاتي :
كود :
System.IO.File.WriteAllBytes(@"Path",byte[] Array);
فمثلا .. عندي ملف نصي (txt.*) حجمه هو 10 بايت ..
اريد ان اقرأ البايتات المكتوبة فيه .. و احول القيم التي فيها الى صيغة نص .. يمكنني ذلك باستعمال هذا الكود :
كود :
byte[] x = System.IO.File.ReadAllBytes(@"C:\Users\uesr\Desktop\MyText.txt");            string text="";
            foreach (byte a in x) { text += Convert.ToString(a) + ","; }
            text = text.Substring(0, text.Length - 1);

            Console.WriteLine(text);

اذا .. لقد حصلنا الان على البايتات ..
كل بايت يتكون من رقم .. و الارقام التي يتكون منها الملف هي : 118,98,52,97,114,98,46,99,111,109
فما هو محتوى هذا الملف النصي .. ؟ لكي نتمكن من المعرفة يجب علينا كتابة البايتات باستعمال هذا الكود :
كود :
byte[] x = { 118, 98, 52, 97, 114, 98, 46, 99, 111, 109 };
            System.IO.File.WriteAllBytes(@"C:\Users\uesr\Desktop\ConvertedBytes.txt", x);

الان لقد قمنا بكتابة الملف مرة اخرى .. عندما نذهب و نفتح الملف و نرى ما فيه نجد ان النتيجة هي : vb4arb.com
هذا هو كل شيء نحتاجه .. و في المثال في الموضوع قمت باستخدام الـ ()Split في الـ String و حلقات التكرار و استخدام Convert.ToString و Convert.ToByte
هذا هو كل شيء ..
تحياتي لك اخي العزيز و للجميع ...
الشمس اجمل في بلادي من سواها .. و الظلام
حتى الظلام هناك اجمل فهو يحتضن العـــراق :o
الرد }}}}
تم الشكر بواسطة:
#4
السلام عليكم

بارك الله فيك اخي العزيز

شرح وافي وكافي

موفق ان شاءاللهSmile
الرد }}}}
تم الشكر بواسطة:
#5
شكرا اخي العزيز ..
ان شاء الله التوفيق لكل امة محمد ^^
الشمس اجمل في بلادي من سواها .. و الظلام
حتى الظلام هناك اجمل فهو يحتضن العـــراق :o
الرد }}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [C#.NET] الفرق بين #String And String Builder c Devahmedsalim 3 1,584 15-09-13, 05:50 PM
آخر رد: sooriaty03

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم