Underc0de

Foros Generales => Dudas y pedidos generales => Mensaje iniciado por: Lafleur212 en Octubre 16, 2019, 05:18:58 PM

Título: C# y los bytes
Publicado por: Lafleur212 en Octubre 16, 2019, 05:18:58 PM
Holaa.
Estoy programando en c# y es curioso cómo en ninguno de los 3 libros que he consultado, ni en google, aparece la información que necesito.
Supongamos que tenemos un archivo de texto de solamente 4 caracteres, un "hola", solo eso.
Existe un método o función la cual imprima en pantalla los bytes de ese archivo en binario?
Existen funciones para pasar un texto tecleado a binario, muchas. Pero recoger y leer cada byte de un archivo?

Llevo dias buscando en vano,y me parece extrañisimo que con los miles de funciones en c# que hay publicadas esa no esté....acaso no se puede hacer?
A ver si alguien pudiera arrojar un poco de luz, seria de gran ayuda para mi y probablemente para mas gente. Gracias de antemano
Título: Re:C# y los bytes
Publicado por: Bartz en Octubre 17, 2019, 09:12:20 AM
Hola @Lafleur212 (https://underc0de.org/foro/index.php?action=profile;u=94836) !
Talvez sea esto lo que buscas ?
https://docs.microsoft.com/en-us/dotnet/api/system.io.filestream.read?view=netframework-4.8
Título: Re:C# y los bytes
Publicado por: Lafleur212 en Octubre 17, 2019, 03:24:10 PM
Hola @Bartz (https://underc0de.org/foro/index.php?action=profile;u=66687) y gracias por la contestación.
Pues no exactamente. Ese método lo que hace es leer y escribir de nuevo en un fichero diferente.
Estoy creando un proyecto de cifrado simétrico de algoritmo propio, y para hacerlo efectivo necesito conocer como es cada byte para aplicarle la formula correspondiente, por eso buscaba como imprimirlos en pantalla para visualizarlo,  y así saber como operar por ellos.
Es como guardar cada byte en una variable para darles un tratamiento, y después grabar el archivo resultante byte a byte.
Título: Re:C# y los bytes
Publicado por: Bartz en Octubre 17, 2019, 03:34:38 PM
Disculpa, queria pasarte el MemoryStream y te pase el FileStream

https://docs.microsoft.com/en-us/dotnet/api/system.io.memorystream?view=netframework-4.8

Con este lograrias tener dentro de una variable un array de bytes
Nunca trabajé con ese array de bytes mas que en el ejemplo que te dejo a continuación

Código (csharp) [Seleccionar]
var adjuntosViewModel = new List<AdjuntoViewModel>();
            int? muestraClienteId = logAdjuntoViewModel.MuestraClienteId;

            // Create several Adjunto entities from the list of files received
            foreach (var file in files)
            {
                var fileContent = ContentDispositionHeaderValue.Parse(file.ContentDisposition);
                var fileName = Path.GetFileName(fileContent.FileName.Trim('"'));
                byte[] fileBytes = null;

                using (var ms = new MemoryStream())
                {
                    file.CopyTo(ms);
                    fileBytes = ms.ToArray();
                }

                var adjunto = new AdjuntoViewModel
                {
                    NombreArchivo = fileName,
                    PesoEnDisco = Convert.ToInt32(file.Length / 1024),
                    Archivo = fileBytes,
                    Activo = true
                };

                adjuntosViewModel.Add(adjunto);
            }