jueves, 6 de octubre de 2011

Escritura y lectura de ficheros binarios con BinaryWriter y BinaryReader


De forma similar a la que se escriben y leen datos en ficheros de texto mediante StreamWriter y StreamReader, es posible realizar el mismo proceso en ficheros binarios mediante sus equivalentes:
BinariWriter y BinaryReader

Al igual que en el caso de los ficheros de texto el proceso se reduce a tres pasos:
1 - Creación del lector o escritor.
2 - Leer o escribir.
3 - Cerrar el fichero.




- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CÓDIGO ESCRITURA DE UN ÚNICO DATO EN UN FICHERO BINARIO
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -


    Private Sub bt_guardar_binario_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_guardar_binario.Click

        'crear el escritor equivale al fopen de c/c++
        Dim fichero As New BinaryWriter(File.Open("C:\datos_binarios.vaf",
                            FileMode.Create, FileAccess.ReadWrite))

        Dim numero_inicial As Single = CSng(txt_numero_inicial.Text)

        'se escribe el valor de la variable en el fichero binario
        fichero.Write(numero_inicial)

        'se cierra el fichero
        fichero.Close()

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CÓDIGO LECTURA DE UN ÚNICO DATO EN UN FICHERO BINARIO
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -


    Private Sub bt_leer_binario_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_leer_binario.Click
        'crear el lector equivale al fopen de c/c++
        Dim fichero As New BinaryReader(File.Open("C:\datos_binarios.vaf",
                            FileMode.Open, FileAccess.ReadWrite))

        Dim dato_leido As Single

        dato_leido = fichero.ReadSingle()

        txt_leido.Text = dato_leido.ToString


        'se cierra el fichero
        fichero.Close()
    End Sub


- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CÓDIGO ESCRITURA DE VARIOS DATOS EN UN FICHERO BINARIO
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



    Private Sub bt_guardar_listado_binario_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_guardar_listado_binario.Click
        'crear el escritor equivale al fopen de c/c++
        Dim fichero As New BinaryWriter(File.Open("C:\datos_binarios.vaf",
                            FileMode.Create, FileAccess.ReadWrite))

        Dim numero_inicial As Single = CSng(txt_numero_inicial.Text)
        Dim numero_final As Single = CSng(txt_numero_final.Text)


        'se escriben los valores que va tomando la variable en el fichero binario
        For dato As Single = numero_inicial To numero_final
            fichero.Write(dato)
        Next

        'se cierra el fichero
        fichero.Close()
    End Sub


- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CÓDIGO LECTURA DE TODOS LOS DATOS DE UN FICHERO BINARIO DE SINGLES
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -




    Private Sub bt_leer_todo_binario_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_leer_todo_binario.Click
        'crear el lector equivale al fopen de c/c++
        Dim fichero As New BinaryReader(File.Open("C:\datos_binarios.vaf",
                            FileMode.Open, FileAccess.ReadWrite))

        Dim dato_leido As Single
        Dim sumatorio As Single

        'Se vacía el textbox para que no se concatene con el contenido
        'generado por una pulsación anterior del botón
        txt_leido.Text = ""

        'se realiza un bucle leyendo hasta final del fichero
        While fichero.PeekChar > -1
            dato_leido = fichero.ReadSingle()
            txt_leido.Text = txt_leido.Text & dato_leido.ToString & Environment.NewLine
            sumatorio += dato_leido
        End While

        'se muestra un messagebox indicando el total del sumatorio
        MessageBox.Show("Los datos del fichero suman: " & sumatorio.ToString)

        'se cierra el fichero
        fichero.Close()
    End Sub

No hay comentarios:

Publicar un comentario

Related Posts Plugin for WordPress, Blogger...