Guardar datos binarios en un fichero

 

Este ejemplo, muestra como introducir datos en binario en un archivo.

En el ejemplo se introduce una cadena de ejemplo:

sCadena = "Prueba de una cadena" & Chr(64) & Chr(14)

Esta cadena, puede ser sustituida por cualquier otra, o bien ser un dato que venga de otra parte (Chr, añade un char a partir de un número ASCII pasado).

Los datos son guardados en el fichero "fichero.dat" de la siguiente forma:

sFichero = "C:\directorio\fichero.dat"

Aquí debería aparecer una dirección valida.

A continuación se abre el fichero, se introduce la cadena y posteriormente introducimos un ASCII 0 (Esto es sólo útil como demostración).

Este ejemplo como tal no es de mucha utilidad, sin embargo es fácilmente modificable y se puede entender de una forma muy sencilla como funcionan los ficheros binarios en Visual Basic 6.0

A continuación describimos las funciones utilizadas:

FreeFile(rango)
Devuelve un entero que representa el siguiente número disponible (sin ser utilizado) para abrir un fichero. Donde:

rango(Opcional) Especifica el rango de números en el que se va a buscar el entero disponible. Puede tener dos valores, 0 (por defecto) devuelve un número entre 1 y 255, 1 para que devuelva un entero entre los valores 256 y 511


Open nombre_fichero For modo As #numero_fichero
Abre un fichero. Donde:
nombre_ficheroEs la dirección donde se encuentre el fichero a abrir / crear (cadena de caracteres)
modoDice como va a ser abierto el fichero, los ficheros pueden ser abiertos de tres formas:
Secuencialmente: Sin posibilidad de saltar datos o volver atrás, los datos se leen por lineas independientemente su longitud. Para abrir un archivo de esta forma, existen tres posibilidades, Input para abrir en modo lectura, Output para abrir en modo escritura al comienzo del fichero (reemplaza lo que se encuentre por la nueva cadena) y Append para añadir datos al final del fichero
Aleatoriamente
(Append) Permiten acceder a los datos directamente, los datos se leen por registros de una longitud dada en bytes. Ejemplo:
Open nombre_fichero For Append as #numero_fichero len = longitud
Donde longitud sería un entero que daría la longitud en bytes.
Binariamente
(Binary) El fichero se abre en forma binaria y se puede acceder a los datos directamente.
numero ficheroUn numero entero que se usará para llamar al fichero, no se puede abrir dos ficheros distintos con el mismo número


Put #numero_fichero, numero_registro, variable_salida
Pinta el contenido de la variable variable_salida en el fichero abierto binariamente o aleatoriamente con el método Open identificado por el #numero_fichero, en la posición pasada por numero_registro. este último parámetro es opcional, en caso de no ser pasado, pintará los datos en la posición del último registro leido o pintado, o en caso de no haberse realizado ninguna acción anteriormente en la primera posición del fichero.

Close #numero_fichero
Cierra el fichero abierto con el método Open identificado por el #numero_fichero.



Código:
Private Sub cmdAbrirF_Click()

    Dim iFichero As Integer
    Dim sFichero As String
    Dim sCadena As String
    Dim bNumero As Byte
    
    'Aquí la cadena que queremos insertar
    sCadena = "Prueba de una cadena" & Chr(64) & Chr(14)

    'Introducir dirección del fichero que queramos crear
    sFichero = "C:\directorio\fichero.dat"
    
    'Abrimos el fichero en modo binario
    iFichero = FreeFile
    Open sFichero For Binary As #iFichero
    
    'Introducimos los datos de la variable sCadena
    Put #iFichero, 1, sCadena
    'Introducimos un dato binario (ASCII 0)
    bNumero = 0
    Put #iFichero, , bNumero
    
    Close #iFichero
    
    MsgBox "Datos insertados correctamente"

End Sub


Formulario:

Links relacionados:
Leer líneas de un archivo con la función file (PHP)
Arquitectura de software en capas


Para cualquier duda, consulta, sugerencia, opinión, colaboración, etc; no dude en ponerse en contacto con nosotros

Copyright © 2002-2017 [McAnam]. Reservados todos los derechos.
www.mcanam.com