8.34 - Extract text from a binary file

Objetive

Create a program to extract (only) the alphabetic characters contained in a binary file, and dump them to a different file. The extracted characters must be those whose ASCII code is 32 to 127, or 10, or 13.

Solution

using System;
using System.IO;

class FileBinay
{
    static void Main()
    {
        FileStream file;
        string name;

        Console.WriteLine("Enter the file name: ");
        name = Console.ReadLine();

        if (!File.Exists(name))
            Console.WriteLine("File {0} not found!", name);
        else
        {
            try
            {
                file = File.OpenRead(name);
                byte[] bytesFile = new byte[file.Length];
                file.Read(bytesFile, 0, (int)file.Length);
                file.Close();

                StreamWriter newFile = new StreamWriter(name + "01.txt");
                for (int i = 0; i < bytesFile.Length; i++)
                {
                    if ((Convert.ToInt32(bytesFile[i]) >= 32) &&
                        (Convert.ToInt32(bytesFile[i]) <= 127) ||
                        (Convert.ToInt32(bytesFile[i]) == 10) ||
                        (Convert.ToInt32(bytesFile[i]) == 13))
                    {
                        newFile.Write(Convert.ToChar(bytesFile[i]));
                    }
                }

                newFile.Close();
            }
            catch (Exception e)
            {
                Console.WriteLine("Error, " + e.Message);
            }
        }
    }
}


Popular Posts