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#
Mostrar 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
Código de Ejemplo Copiado!
Comparte este Ejercicio C# Sharp
¡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#.
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...
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...
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...
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 ...
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...
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 ...