El objetivo de éste tutorial es manejar los diferentes tipos de archivos de almaceamiento. Al fnal de este tutorial serás capaz de:
Visual Basic tiene tres formas interconstruidas para accesar alchivos (excluyendo el control Data la cual accesa bases de datos): 1) Acceso secuencial, 2) Acceso aleatorio, y 3) Acceso binario.
Acceso secuencial: Los datos de los archivos son leidos y escritos línea por línea. El almacenamiento es eficiente, pero al accesar los datos en diferentes secciones del archivo es díficil, por el mecanismo secuencial de acceso.
Acceso aleatorio Lee y escribe datos registro por registro a cualquier localización dentro del archivo. Este tipo de acceso es conveniente cuando el archivo contiene tipos de datos homogeneos.
Acceso BinarioLee y escribe datos byte por byte a cualquier localización dentro del archivo. este tipo de archivo es efieciente en términos de almacenamiento, pero es dificil de programar.
Frecuentemente en una aplicación hay varias caracteristicas de software que pueden ser alteradas y actualizadas por el usuario. debido a que estas modificaciones. se hacen en tiempo de ejecución, implica que estos valores se pierden cuando la aplicación termina. Así, para hacer que estos cambios permanescan la aplicación deberá almacenar la información acerca de estas modificaciones en algun lugar dentro de si misma. Una forma es usar un archivo de acceso secuencial el cual es creado cuando la aplicación termina y se puede leer cuando la aplicación inicia de nuevo. Dentro del archivo pude estar toda la información relacionada con el tamaño de la fuentes, colores, posición de la ventana, etc.
Dim FileNum As Integer FileNum = FreeFile Open "A:SETTINGS.DAT" For Output As FileNum Print #FileNum, lstEnglish.FontName Print #FileNum, lstEnglish.BackColor ... Close FileNum ' Importante para cerrar el archivo
Dim FileNum As Integer Dim temp FileNum = FreeFile Open "A:SETTINGS.DAT" For Input As FileNum Input #FileNum temp lstEnglish.FontName = temp Input #FileNum temp lstEnglish.BackColor = temp ... Close FileNum ' Importante para cerrar el archivo
Nota: la variable temp es usada porque las propiedades no pueden ser usadas directamente con un argumento de salida. Así, cada línea del archivo es leída dentro de temp.
La desventaja con el acceso secuencial es que si en el acceso al archivo se desea leer la línea 20 el programa tiene que leer dese la línea 1 hasta la 19. Este problema no ocurre con el acceso aleatorio. El programa puede leer o escribir directamente en cualquier parte del archivo al azar. La estructura de los datos debera ser especificada antes de usar un archivo de acceso aleatorio. En esta segunda tarea una pequeña base de datos que almacene información acerca de nombres, número telefónico, edad, y un espacio para comentarios.
Option Explicit Type PersonData FirstName As String * 20 LastName As String * 25 PhoneNo As String * 14 Age As Integer Comments As String * 100 End Type
Nota: Las variables de tipo cadena (String) tienen en seguida un * y un número que muestra la longitud asignada a sus caracteres en el archivo (tamaño del campo).
Option Explicit Dim Person As PersonData
Eso crea una nueva variable llamada Person.Sin embargo esto no es un tipo de dato como String, Integer, Long, etc, esto es un nuevo tipo de datos llamado PersonData.
para que los datos se almacenen podemos introducir las siguientes líneas :
Person.FirstName = txtFirstName.Text Person.LastName = txtLastName.Text Person.PhoneNo = txtPhoneNo.Text
Nota: la variable Person tiene en seguida un . y en seguida el nombre de un campo el cual es el mismo que fue usado en el MODULE1.BAS con el comando Type. Debemos recordad que Person no es una simple variable como una String, esta es una variable compuesta hecha de 5 diferentes tipos de datos.
Dim FileNum As Integer Dim Position As Integer FileNum = FreeFile Position = 1 ' Determina cual registro debe ser accesado Open "A:PERSONAL.DAT" For Random As FileNum Len = 161 Put #FileNum, Position, Person Close #FileNum
Para escribir un dato a otro registro en el archivo cambia el valor de la variable Position. Si un archivo contiene 5 registros y un nuevo registro se agrega en la posición 7, ¿ que aparece en el registro 6?.
Get #FileNum, Position, Person txtFirstName.Text = Person.FirstName txtLastName.Text = Person.LastName ...
Nota: Cuando trabajes con algún tipo de archivo de VB , para checar que el contenido del archivo sea correcto, minimiza Vb y abre el archivo que deseas verificar usando el Notepad de windows, el nombre del archivo es PERSONAL.DAT). Note Pad u otros programas pueden ser usados para crear archivos para VB la única condición es que esten en código ASCII.