Extraer Texto De Un Archivo Binario - Ejercicio De Programacion C# Sharp

Este ejercicio consiste en crear un programa en C# que extraiga solo los caracteres alfabéticos contenidos en un archivo binario y los volque en un archivo separado. El programa debe leer el archivo binario, filtrar los caracteres cuyo código ASCII esté entre 32 y 127, o que sean iguales a 10 o 13 (que corresponden a los saltos de línea y retorno de carro, respectivamente), y luego escribir estos caracteres extraídos en un nuevo archivo. Este ejercicio implica el manejo de archivos binarios, la manipulación de datos basados en su código ASCII y la creación de archivos de salida que contengan solo caracteres imprimibles.

 Categoría

Administración de Archivos

 Ejercicio

Extraer Texto De Un Archivo Binario

 Objectivo

Cree un programa para extraer (sólo) los caracteres alfabéticos contenidos en un archivo binario y volcarlos a un archivo diferente. Los caracteres extraídos deben ser aquellos cuyo código ASCII sea 32 a 127, o 10, o 13.

 Ejemplo Ejercicio C#

 Copiar Código C#
// Import the necessary namespaces for file handling and basic input/output operations
using System;  
using System.IO;  

// Declare the main Program class
class Program
{
    // Main method where the program starts
    static void Main()
    {
        // Specify the input binary file and output text file paths
        string inputFilePath = "input.bin";  // Replace with the path to your binary file
        string outputFilePath = "output.txt";  // Replace with the desired output file path

        // Try to process the binary file and extract printable characters
        try
        {
            // Open the input binary file using a BinaryReader
            using (BinaryReader reader = new BinaryReader(File.Open(inputFilePath, FileMode.Open)))
            {
                // Create a StreamWriter to write the extracted characters to the output file
                using (StreamWriter writer = new StreamWriter(outputFilePath))
                {
                    // Read the entire file byte by byte
                    while (reader.BaseStream.Position < reader.BaseStream.Length)
                    {
                        // Read the next byte from the file
                        byte b = reader.ReadByte();

                        // Check if the byte represents an ASCII character between 32 and 127, or is 10 (newline) or 13 (carriage return)
                        if ((b >= 32 && b <= 127) || b == 10 || b == 13)
                        {
                            // Write the character to the output file
                            writer.Write((char)b);
                        }
                    }
                }
            }

            // Notify the user that the extraction was successful
            Console.WriteLine($"Extracted text has been saved to '{outputFilePath}'");
        }
        catch (Exception ex)  // Catch any errors that may occur during file reading or writing
        {
            // Print the error message to the console
            Console.WriteLine($"Error processing the file: {ex.Message}");
        }
    }
}

 Salida

Input:

Let's say input.bin contains the following sequence of bytes:
0x48 0x65 0x6C 0x6C 0x6F 0x20 0x57 0x6F 0x72 0x6C 0x64 0x00 0x01 0x02

The hexadecimal values represent the following characters:
'H' 'e' 'l' 'l' 'o' ' ' 'W' 'o' 'r' 'l' 'd' (non-printable bytes 0x00, 0x01, 0x02)

Output:

The program will extract the printable characters and save them in output.txt:
Hello World

 Comparte este Ejercicio C# Sharp

 Más Ejercicios de Programacion C# Sharp de Administración de Archivos

¡Explora nuestro conjunto de ejercicios de programación C# Sharp! Estos ejercicios, diseñados específicamente para principiantes, te ayudarán a desarrollar una sólida comprensión de los conceptos básicos de C#. Desde variables y tipos de datos hasta estructuras de control y funciones simples, cada ejercicio está diseñado para desafiarte de manera gradual a medida que adquieres confianza en la codificación en C#.

  •  Conversor de C# a Pascal

    Este ejercicio consiste en crear un programa en C# que convierta programas simples en C# a su equivalente en el lenguaje Pascal. El programa debe leer u...

  •  Volcado

    Este ejercicio consiste en crear una utilidad de "dump": un visor hexadecimal que muestra el contenido de un archivo, con 16 bytes por fila y 24 filas por pantalla. El progr...

  •  Extractor DBF

    Este ejercicio consiste en crear un programa que muestre la lista de campos almacenados en un archivo DBF. El formato DBF es utilizado por el antiguo gestor de bases de dato...

  •  Texto censurado

    Este ejercicio consiste en crear un programa que censure archivos de texto. El programa debe leer un archivo de texto y volcar su contenido a un nuevo archivo, reemplazando ...

  •  SQL a texto

    En este ejercicio, debes crear un programa en C# capaz de analizar comandos SQL de tipo INSERT y extraer sus datos en líneas de texto separadas. El programa debe proc...

  •  Visor PGM

    El formato PGM es una de las versiones de los formatos de imagen NetPBM. Específicamente, es la variante capaz de manejar imágenes en tonos de gris. Su encabezado comienza con una ...