Unidad 40. Archivos secuenciales en VB (I)





40.1. Objetivos del tema.

Visto el acceso a un archivo, vamos a ver el acceso a un archivo secuencial utilizando un formato en ASCII delimitado como formato de grabación, que es el más estándar de todos.

40.2. Introducción.

Son archivos que se generan con una estructura que puede o no ser fija y que su lectura no puede ser direccionada.

Otro aspecto, es que por la estructura de datos generada en el archivo, la misma permita que se direccionen los registros, y que dicho archivo pueda ser abierto bajo otro formato distinto, de acceso aleatorio, pero eso es una particularidad, o una excepción, y también podríamos enfocarlo al revés, es decir es un archivo random, que se usa como archivo secuencial, para gustos los colores.

Otro aspecto sobre los archivos secuenciales, es que la estructura de datos que albergan no tiene porque ser una estructura fija, pueden ser registros con una estructura distinta de unos a otros, y además la longitud puede ser variable, siempre y cuando se este utilizando el formato de ASCII delimitado, que incorpora la delimitación de campos y de final de registro.

40.3. Abrir un archivo.

El primer paso para acceder a un archivo es siempre enlazarlo con el programa, abrirlo.

 

Lo primero es definir una variable que haga referencia al canal, en VB, la forma de identificar un archivo, es saber que canal de enlace utiliza con el sistema.

 

Dim Canal As Integer

 

Después lo más cómodo es utilizar la función freefile, que nos devolverá un canal disponible, en lugar de tenerlo que gestionar nosotros.

 

Canal = FreeFile()

 

Esta instrucción debe ejecutarse justo antes de abrir el archivo, nunca antes, si no la información obtenida puede no ser correcta.

El siguiente paso es realizar la apertura, en el modo que nos interese.

 

FileOpen(Canal, "Nombre.dat", OpenMode.Output)

 

Para grabar datos la sintaxis es la que sigue:

 

 Dim Canal As Integer

 Canal = FreeFile()

 FileOpen(Canal, "Nombre.dat", OpenMode.Output)

 

Para realizar una lectura:

 

 Dim Canal As Integer

 Canal = FreeFile()

 FileOpen(Canal, "Nombre.dat", OpenMode.Input)

 

Para añadir datos, a un archivo ya existente.

 

 Dim Canal As Integer

 Canal = FreeFile()

 FileOpen(Canal, "Nombre.dat", OpenMode.Append)

 

Matices, si se abre para grabar con Output, si el archivo existe perderá su contenido, si no existe se creará.

Si se abre para grabar con el modo Append, se añaden los datos a los que pudiera tener.

Si se abre con input se accede a él para leer su contenido.

40.4. Grabar una estructura de datos.

Bueno visto como efectuar la lectura y escritura en un archivo secuencial, conviene ampliar el tema para un archivo con una estructura algo más amplia.

Para la estructura de datos podemos utilizar un array o una colección, con el fin de almacenar los datos a utilizar en la misma.

La grabación de los datos no es nada más que la generación de un registro de datos con un formato en concreto, uno de los más extendidos es el ASCII delimitado.

En este formato se graban los datos numéricos separados por comas y los alfanuméricos encerrados entre comillas dobles.

VB integra directamente el formato ASCII delimitado, y no es necesario ningún tipo de acción especial.

 

Además permite grabar registros de longitud variable, bajo una única variable, útil para datos de texto.

 

Para la grabación de los datos de un registro podemos hacerlo bajo dos formatos.

 

La estructura se graba como una variable definida con una estructura de usuario.

 

  Public Structure Tiostro

    Public Exped As String

    Public Nomb As String

    Public Ape1 As String

    Public Ape2 As String

    Public Domic As String

  End Structure

  Dim Registro as TipoRegistro

 

Y grabar

 

  WriteLine(Canal, Registro)

 

O bien podemos grabar los datos en una variable cada uno de ellos, prescindiendo de la estructura.

 

  WriteLine(Canal, Expediente, Nombre, Domicilio)

Octubre-2010
Pág. 40.1

Atrás  Inicio  Adelante






Página inicial  Cursos Informática Gratuitos

Síguenos en:   Facebook       Sobre aulaClic            Política de Cookies