canal visual basic .net

Recursos Visual Basic.NET, VB.NET, Manuales de programación, Tutoriales, Foros de programación, Comunidad de programadores

Usuarios activos:  61

Manuales : Archivos

El objetivo de éste tutorial es manejar los diferentes tipos de archivos de almaceamiento. Al fnal de este tutorial serás capaz de:

  • Seleccionar el tipo de archivo apropiado para cada situación.
  • Abrir un archivo para introducir información o sacar información.
  • Leer o escribir a un archivo.
  • Cerrar un archivo correctamente.

Tipos de archivos.

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.



Tarea 1 (Acceso secuencial)

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.

  1. Agrega la habilidad de almacenar cambios en la aplicación ‘Language Tutor’ creada en el tutorial ‘Menus y manipulación de listas´.

  2. Usando el evento ‘Form_Unload’ escribe una rutina que abra un archivo y almacene todos los cambios actuales.

     
      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
    
    
  3. Agrega al evento ‘Form_Load’ una rutina que abra el mismo archivo creado en 2, lea el contenido, entonces inicializa los valores de diferentes controles donde sea necesario para restaurar el estado antrior de la aplicación.

     
      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’.



Tarea 2 (Acceso Aleatorio)

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.

  1. Definición de la estructura del archivo de acceso aleatorio. Coloque el siguiente código en el módulo (MODULE1.BAS):

     
      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).

  2. El código de arriba define un tipo de dato nuevo llamado ‘PersonData’ el cual puede ser usado para declarar variables . Declaremos una variable para este tipo introduciendo código en la sección de declaraciones generales de la forma principal :

     
      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.

  3. Crea una estiquetas (label) y unas cajas de texto en la forma principal para que el usuario pueda introducir o editar información de cada persona en la base de datos.

  4. 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.

  5. Para salvar los datos a un archivo primero este deberá ser abierto. Deberemos decirle a VB la longuitud en caracteres de cada registro. Los errores aquí tienen consecuencias desagradables. Para los detalles en ña base de datos personal la longuitud es (20 + 25 + 14 + 2 + 100). Esta es la longuitud de las cadenas (strings) agregadas más 2 lo cual es el número de caracteres que un entero necesita.

     
      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?.

  6. Para leer datos de un archivo aleatorio usa el siguiente código despues de que el archivo este abierto:

     
      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.

Visual Studio .VisualBasic.net .ADO.NET .ASP.NET .Framework .Crystal report
[Visual Basic .NET · Información legal · Condiciones de uso · Publicidad · Contacto · RSS novedades Foro · Inicio]
Un sitio web de Internelia (Ontecnia) © Copyright 2013 canalvisualbasic.net. Todos los derechos reservados