Una vez que se ha visto la parte conceptual de los archivos random, vamos a ver su uso desde VB.
En los pasos a seguir para el uso de los archivos random, no hay diferencias con los archivos secuenciales, los pasos son los mismos.
Abrir el archivo.
Acceder al mismo.
Finalizado el programa cerrarlo.
La instrucción para la apertura del archivo es FileOpen, y su sintaxis:
FileOpen(Canal,Nombre,OpenMode.Random, , ,Len(Registro))
Donde
Canal Será 1, 2, 3 , pero utilizaremos FreeFile para obtener un canal libre.
Nombre "Fichero.ext" por ejemplo, incluida la ruta.
Forma de apertura OpenMode.Random, formato de apertura del archivo.
Longitud Len(Registro) , 56, longitud de registro.
Y no es necesario cerrar y abrir, para leer o grabar un registro.
Antes de proceder a la lectura o grabación de un registro, hay que definir la estructura del registro que vamos a utilizar.
Structure FilRandom ‘ Tipo de usuario
<VBFixedString(15)> Public Nom As String
<VBFixedString(15)> Public Dire As String
<VBFixedString(15)> Public Pobl As String
<VBFixedString(2)> Public Prov As String
<VBFixedString(9)> Public Tele As String
End Structure
Para después utilizar una variable definida de ese tipo, en lectura o grabación.
Dim Registro as FilRandom ‘ Variable Registro
Una vez que tenemos definida la estructura del registro y hemos abierto el archivo, podemos leer un registro.
FileGet(Canal, Registro, Posicion)
Donde
Canal será la misma variable utilizada en la apertura.
Registro es la variable definida del tipo de la estructura creada.
Posición es la dirección donde deseamos realizar la lectura.
La variable registro una vez realizada la lectura, contendrá los datos resultantes de la misma bajo la sintaxis
Registro.Nom
Regisro.Direc
El código de una acción de lectura podría ser:
Select Case Campo00.Text <> ""
Case True
Posicion = CLng(Campo00.Text)
Select Case Posicion
Case 1 To 20
FileGet(CanalAgenda, Reg, Posicion) ' Lectura
Select Case Reg.Nom <> StrDup(15, " ")
Case True ' Ocupado
Visualiza() ' Visualiza registro
Case Else ' Código libre
Mensaje = "El código no existe"
End Select ' Campo siguiente
Case Else ' Código fuera de rango
Mensaje = "Código fuera de rango"
End Select
Case Else ' Valor inadecuado
Mensaje = "Valor del campo incorrecto"
End Select
Los pasos seguidos son:
Select Case Campo00.Text <> ""
Comprobar que el contenido sea distinto de nulo, previamente ya se habrá filtrado que el contenido solo pueda ser numérico.
Posicion = CLng(Campo00.Text)
Después asignamos el valor del texto con contenido numérico a una variable de tipo Long en éste caso, para usarla en la lectura.
Select Case Posicion
Case 1 To 20
Comprobamos que está dentro de los límites y procedemos a leer.
FileGet(CanalAgenda, Reg, Posicion) ' Lectura
Hecha le lectura se comprueba su resultado
Select Case Reg.Nom <> StrDup(15, " ")
Comprobando en este caso que el campo nombre no esta en blanco.
Case True ' Ocupado
Visualiza() ' Visualiza registro
Si esta ocupado se procede a visualizar su contenido.
Case Else ' Código libre
Mensaje = "El código no existe"
End Select ' Campo siguiente
En caso contrario se deja seguir el programa, o se informa de que no existe el código, según corresponda.
El resto es ya informar de que el código está fuera de rango, o que el valor facilitado es incorrecto, en éste caso porque está vacío.
Síguenos en: Facebook Sobre aulaClic Política de Cookies