Estás en: Inicio >> Foros >> Informática >> Programación
Programación /

Archivos y conversión string<->byte

Participa en el tema Archivos y conversión string<->byte en el foro Programación.
Buenas, estoy en VB2008 volviéndome loco... a ver, me gustaría saber cómo se relacionan los ...

Buscar en este tema:
 
  •  
    #1 Archivos y conversión string<->byte
    Buenas, estoy en VB2008 volviéndome loco... a ver, me gustaría saber cómo se relacionan los métodos 'WriteAllText" y "WriteAllBytes", y sus respectivos para leer, en My.Computer.FileSystem.
    Es que a la hora de escribir y leer obtengo cosas a veces iguales y a veces diferentes, pero en general en la conversión dejan de ser idénticos los archivos.... me explico con mi caso:

    Quiero guardar texto con una imagen, todo junto en un mismo archivo. He encontrado unas funciones muy útiles para el tema de las imágenes, ya que realizan la conversión de una imagen a una matriz de bytes, y viceversa, y así lo hago todo por código. Estas son:

    Shared Function Imagen_Bytes(ByVal Foto As Image) As Byte()
    If Not Foto Is Nothing Then
    Dim Codi As New IO.MemoryStream
    Foto.Save(Codi, Imaging.ImageFormat.Png)
    Return Codi.GetBuffer
    Else
    Return Nothing
    End If
    End Function

    Shared Function Bytes_Imagen(ByVal Foto As Byte()) As Image
    If Not Foto Is Nothing Then
    Dim Codi As New IO.MemoryStream(Foto)
    Dim resultado As Image = Image.FromStream(Codi)
    Return resultado
    Else
    Return Nothing
    End If
    End Function

    Bien, a la hora de grabar, obtengo la matriz de bytes a partir de la imagen. Pero como tengo también texto, y tengo que unir texto y una matriz de bytes, tengo que pasarlo todo a un mismo tipo. Entonces hago:

    Dim Conv = New System.Text.ASCIIEncoding
    Dim Cadena as String

    Cadena = Conv.GetString(ArrayBytes)

    Con lo que convierto el array de bytes en un string, usando una codificación ascii.
    Bueno, pues ya haga lo que haga, si grabo con WriteAllBytes o con WriteAllText, o convierta de String a matriz de bytes, o viceversa, cuando leo, de cualquier manera, y vuelvo a convertir, de cualquier manera también, no consigo obtener exactamente la misma información, pues ahora cuando intento volver a formar la imagen me da un error, y eso no pasa si la matriz de bytes está bien.

    Bufff, qué rollazo. Bueno, a ver si sabéis algo de este tema. Muchas gracias.

    Salu00000010!!!
    +
     
    0
    Me gusta
     
    http://www.psicofxp.com/forums/programacion.313/891753-archivos-y-conversion-string-byte.html
    | Más
  • #2 Re: Archivos y conversión string<->byte

    Te conviene guardar bytes en vez de texto. Si conoces la longitud de lo que grabas primero no habria problema. Tenes que hacer un append de los bytes en el archivo y no un write, porque te va a pisar lo que ya escribiste, me explico?.
    La lectura es muy sencilla, primero lees los N bytes del texto (si escribiste primero el texto) y luego de N+1 hasta el fin de archivo es la imagen (si escribiste al final la imagen).
    Mas o menos asi.
    Me gusta este mensaje
  • #3 Re: Archivos y conversión string<->byte

    O sea, que hay que hacerlo por partes. Yo tenía pensado poder preparar todo el contenido del archivo por código y volcarlo de una vez, pero probaré como dices, ahora te cuento. Muchas gracias.
    Saludos!
    Me gusta este mensaje
  • #4 Re: Archivos y conversión string<->byte

    Si, lo que yo digo tambien es hacer el archivo de una sola vez.

    La ide es hacer algo asi:
    abrir el archivo
    escribir texto
    escribir imagen
    cerrar archivo

    Para leer:
    abrir archivo
    leer texto 0..N
    leer imagen N+1..fileLen
    cerrar archivo
    Me gusta este mensaje
  • #5 Re: Archivos y conversión string<->byte

    Ok, pues ya está hecho. Sí, lo entendí mal, se puede armar todo el fichero por código y volcarlo de una vez. Bueno, muchísimas gracias, estaba ya un poco desesperado probando cosas.
    Saludos!
    Me gusta este mensaje
Estás en: Inicio >> Foros >> Informática >> Programación


Estadísticas del tema
  • 4 RESPUESTAS
  • 746 VISTAS
  • 2 USUARIOS RESPONDIERON
 
Ir arriba
Contacto | Acerca de | Ayuda | Términos Legales | privacidad | Pautas de convivencia | Mapa de los foros | TrabajÁ con nosotros
©2008 Psicofxp.com S.A. - Todos los derechos reservados
Certifica IAB