miércoles, 5 de octubre de 2011

Escritura y lectura de ficheros de texto con FileStream

Con la clase FileStream es posible leer y escribir en ficheros de texto.

A continuación se muestran un ejemplo de escritura y otro de lectura, con comentarios indicando las equivalencias con C/C++

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CÓDIGO ESCRITURA EN FICHERO DE TEXTO
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -


   Private Sub bt_escribir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_escribir.Click
        'Equivale en C/C++ a:
        'FILE * fichero
        'fichero = fopen (ruta, modo apertura)

        Dim fichero As New FileStream("C:\datos.txt", FileMode.Create, FileAccess.ReadWrite)

        Dim tabla_buffer As Byte()
        tabla_buffer = Encoding.Default.GetBytes(TextBox1.Text)

        'ahora se usaria fseek pero estamos al principio del fichero
        fichero.Seek(0, SeekOrigin.Begin)

        'Equivale en C/C++ a:
        'fwrite
        'fichero.Write(TABLA A ESCRIBIR, DATO INICIAL, CANTIDAD DE DATOS)
        fichero.Write(tabla_buffer, 0, tabla_buffer.Length)

        'Equivale en C/C++ a:
        'fclose
        fichero.Close()
    End Sub



- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CÓDIGO LECTURA DE FICHERO DE TEXTO
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -


    Private Sub bt_leer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_leer.Click
        'FILE * fichero
        'fichero = fopen (ruta, modo apertura)

        Dim fichero As New FileStream("C:\datos.txt", FileMode.Open, FileAccess.ReadWrite)

        Dim tabla_buffer(CInt(fichero.Length - 1)) As Byte

        'ahora se usaria fseek pero estamos al principio del fichero
        fichero.Seek(0, SeekOrigin.Begin)

        'fread
        'fichero.Write(TABLA A ESCRIBIR, DATO INICIAL, CANTIDAD DE DATOS)
        fichero.Read(tabla_buffer, 0, tabla_buffer.Length)

        'transformamos los bytes de la tabla_buffer en un string
        'y los asignamos al textbox
        TextBox1.Text = Encoding.Default.GetString(tabla_buffer)

        'fclose
        fichero.Close()
    End Sub



No hay comentarios:

Publicar un comentario

Related Posts Plugin for WordPress, Blogger...