Sei sulla pagina 1di 6

MANEJO DE ARCHIVOS EN VISUAL BASIC

CONCEPTOS BÁSICOS PARA EL TRATAMIENTO Y ACCESO A LOS ARCHIVOS EN VISUAL BASIC

Introducción.
Todas las aplicaciones realizadas hasta ahora obtienen los datos necesarios para su ejecución del
teclado y visualizan los resultados de salida en la pantalla.La aplicación retiene los datos en
memoria RAM mientras esta en ejecucion, una vez la aplicación finaliza, los datos se pierden. Para
volver a tener presentes los datos, es necesario introducirlos todos de nuevo.

La solución para evitar que los datos se pierdan,es almacenarlos en un archivo en el disco duro,
en vez de la memoria. Entonces cada vez que se ejecute la aplicación que trabaja con estos datos,
podrá leer los que necesita desde el archivo guardado en el disco duro y manipularlos. En la vida
real nosotros trabajamos con archivos, almacenamos los datos que queremos conservar,
generalmente en un archivo,(una hoja, un cuaderno, un archivador, etc) al cual le podemos dar
un nombre, lo guardamos para evitar que se nos pierda la información y posteriomente la
accesamos de nuevo para buscar los datos que necesitemos.
Que es un archivo desde el punto de vista informatico? Se puede ver como una colección
de datos (información) organizados normalmente de forma secuencial, que almacenamos en un
soporte magnético para poderlos manipular en cualquier momento. Esta información también
puede almacenarse como un conjunto de registros, conteniendo todos ellos , generalmente los
mismos campos, donde cada campo almacena un tipo de dato determinado.
CAMPO: En informática, un campo es un espacio de almacenamiento para un dato en particular.
En una base de datos, un campo es la mínima unidad de información a la que se puede acceder.

Cada campo tiene un nombre, hay un tipo de campo que es el llamado campo clave o campo
llave.

Ejemplo de campos:Nombre; edad; teléfono;etc.

REGISTRO: conjunto de campos relacionados entre si con un mismo concepto, generalmente de


diferente tipo.

Ejemplo de registros: Los datos de un estudiante, los datos de un empleado, los datos de un
paciente, de un animal, etc

ARCHIVO: Tambien podemos decir que un archivo es un conjunto de registros que se guardan
en algún medio de almacenamiento magnetico y que permite ser leído o accedido por un
computador. Un archivo es identificado por un nombre.

Los archivos facilitan una manera de organizar y almacenar permanentemente información dentro
de un computador.

Ejemplo de archivos: Archivo de empleados, de estudiantes, de proveedores, etc.

BASE DE DATOS: Es un conjunto de archivos.

Ejemplo de Bases de Datos: Base de datos de un almacen, base de datos de un hospital, base
de datos de una universidad.
Graficamente podemos ver estos conceptos asi:

En computación existen básicamente dos tipos de archivos, los archivos ascii y los archivos
binarios. El vocablo ascii es un acrónimo para American Standard Code for Information
Interchange. Es un estándar que asigna un valor numérico a cada carácter, mediante el cual se
puede representar cualquier documento, comúnmente llamados de texto plano, es decir, los que
son legibles por lo seres humanos. Los archivos binarios son todos los demás. Como ejemplos
tenemos:

Archivos binarios
(No son legibles o no se pueden entender porque son bytes)
 De imagen: .jpg, .gif, .tiff, .bmp (Portable bitmap), .wmf (Windows Meta File), .png
(Portable Network Graphics), .pcx (Paintbrush); entre muchos otros
 De video: .mpg, .mov, .avi, .gif
 Comprimidos o empaquetados: .zip, .Z, .gz, .tar, .lhz
 Ejecutables o compilados: .exe, .com, .cgi, .o, .a
 Procesadores de palabras: .doc

Archivos ascii. (Son legibles o se pueden entender porque son caracteres)


 Archivos fuente: .f, .c, .p,java,
 Formatos de texto: .tex, .txt, .html, .dat, .inf, .ini, .log, .bat
 Formatos de intercambio: .rtf, .ps, .uu

En Visual Basic existen tres formas de trabajar con archivos de acuerdo a como los accesa el
computador:acceso secuencial, acceso aleatorio y acceso binario.

Archivo secuencial:Es un archivo de texto plano,( compuesto únicamente por texto sin formato,
sólo caracteres, lo que lo hace también legible por humanos. Carece de formatos:negrita,
subrayado,cursivo,tamaño , etc)

Vbasic lee o escribe solo una línea cada vez que puede tener cualquier longitud. Cuando se
escribe en un archivo secuencial, los registros son colocados uno detrás del otro y asi mismo se
leen. Este tipo de acceso es característico de los archivos de tipo texto, donde la información se
escribe desde el inicio hasta el final y la lectura se hace de igual manera.

Archivo de acceso aleatorio:Se puede leer o escribir en el orden en que se necesite. Todas
las líneas(registros) deben tener la misma longitud.
Archivo binario: Es tan solo una colección de bytes. Vbasic no asume que los datos están
organizados por lo que se pueden leer o accesar de cualquier forma.

OPERACIONES SOBRE EL SISTEMA DE ARCHIVOS.

Para manipular los archivos Vbasic proporciona una serie de sentencias tales como: Kill, Name,
MkDir, RmDir,ChDrive, etc. que pueden utilizarse como cualquier otra sentencia en el código de
una aplicación:Por ejemplo si queremos eliminar un archivo su sintaxis seria:
Kill “nombre_del_archivo o ruta donde esta el archivo”.
Ej1. Kill “tuarchivo.txt”; Ej2. kill “c:\programas\miarchivo.txt”
Si queremos cambiarle el nombre a un archivo.
Name “nombre_actual” as “nombre_nuevo”
Name “c:\programas\tu_archivo.dat” as “Miarchivo.txt”

A continuación se trataran las sentencias básicas del manejo de archivos secuenciales:


1 - Sentencias Open.
Esta sentencia es la encargada de abrir o crear un archivo, ya sea para leer datos del mismo,
sobre escribirlos y/o para agregarle datos.
Esta sentencia tiene una serie de parámetros que varían de acuerdo a lo que queramos hacer.

Sintaxis: Open nombre_archivo For Modo As #narchivo

Donde nombre_archivo es el nombre del archivo que se quiere abrir.


Modo:indica el modo que se quiere abrir el archivo, los cuales pueden ser:
 Input (Para entrada):Abre el archivo para leer datos de el secuencialmente desde el
principio, si el archivo no existe se produce un error.
 Output (Para salida):Abre el archivo para escribir datos en el secuencialmente. Si el
archivo existe se destruye o se borra su contenido creándose uno nuevo, si no existe se
crea.
 Append(Para entrada): Abre el archivo para adicionar datos secuencialmente al final de el.
Si el archivo no existe se crea.

El parámetro narchivo, es un numero entero (1 a 512) que indica el numero de archivo asociado
con el nombre del archivo y que se usara para referenciarlo en las sentencias de E/S.

Hay una función en Visual basic llamada FreeFile. Esta función lo que hace es darnos un número
de archivo que esté libre y que se pueda usar, para que de este modo no intentamos abrir uno
esté siendo utilizado, y asi evitar un error en tiempo de ejecución.

Un archivo puede abrirse mas de una vez en modo input, sin haberlo cerrado previamente, por
ejemplo:
n1=Frefile
Open “datos.txt” For Input As #n1
n2= Frefile
Open “datos.txt” For Input As #n2

Sin embargo no se puede abrir un archivo en modo Output o Append otra vez. Por ejemplo las
siguientes sentencias no son validas:

Open “datos.txt” For Output As #n1


Open “datos.txt” For Output As #n2

Ejemplo y Explicacion.
Open "c:\prueba.txt" For Input As #1

Este ejemplo abre un archivo para poder acceder a los datos que contenga en su interior. Cuando
decimos abrir, estamos diciendo que el archivo se encuentra actualmente abierto y esta alojado
en la memoria RAM para poder manipularlo.

En el primer parámetro indicamos el nombre con toda la ruta donde se encuentra el archivo
(path) en el que queremos trabajar. El modo (input) indica que se abre para lectura.
Luego la palabra As #1 indica el número de archivo que estamos utilizando. Este número lo
asignamos nosotros y va desde el rango 1 al 511. El número de archivo se utiliza para poder
diferenciar al archivo en el código. Cada archivo que se encuentre abierto tiene que tener un
numero diferente, no se puede asignar un número de archivo igual a otro archivo, ya que nos
daría un error en tiempo de ejecución.

Por ejemplo no podríamos hacer esto:

Open "archivo1.txt" For Input As #1


Open "otroarchivo1.txt" For Input As #1

2.Sentencia Close .
Una vez que terminamos de trabajar con un archivo que se encuentra abierto y que no lo vamos a
utilizar mas, debemos cerrarlo. para ello se utiliza la sentencia Close seguido del número de
archivo que lo identifica.
Por ejemplo:
Close #2

Esto cerrará al archivo abierto que anteriormente le asignamos el número de archivo 2. También
si tengo 3 archivos abiertos podría hacer lo siguiente:
Close #1, #2, #3

Si utilizamos la sentencia Close sin ningún parámetro, o mejor dicho ningún número de archivo,
se cerrarán todos los archivos cargados en memoria por nuestra aplicación (los que nosotros
abrimos con Open).
Por lo general, si trabajamos con varios archivos abiertos simultáneamente, es aconsejable utilizar
la sentencia Close sin ningún parámetro, de este modo cuando termine de ejecutarse el
procedimiento se cerrarán todos los archivos abiertos.
La sentencia Reset hace lo mismo que close() sin argumentos

3.Sentencia Print #
Se usa para grabar datos secuencialmente en un archivo.Su sintaxis es: Print #narchivo,
expresiones []
Donde narchivo es el numero de archivo y expresiones es una lista de expresiones numéricas o de
caracteres que van a escribirse en el archivo.
Esta sentencia graba las expresiones en el archivo tal como se visualizarían en pantalla con print,
por lo que se deben usar delimitadores entre los datos con el fin de distinguirlos al momento de
leerlos.
Ejemplo: Crear un archivo llamado prueba1.txt que contenga:
(Se deben declarar las variables y crear el archivo)
1. A=5:
2. B=10
3. Print #1, A,B
4. apellido=”Diaz”
5. nombre=”Juan”
6. Print #1, apellido,nombre
Imprima la salida del archivo.

Al ejecutarse la línea 3 se grabaran en el archivo 5 y 10.


Al ejecutarse la línea 6 se grabaran en el archivo DiazJuan
Como se leerán y se imprimiran los datos ?
Al mostrarse los datos como no hay un delimitador entre las cadenas, se va a ver desde el
segundo registro como si fuera uno solo! Para evitar este error debe introducirse un delimitador
especifico entre las cadenas como por ejemplo:
Print #1, apellido, “,”,nombre (el delimitador puede ser , o un ;)
Al ejecutarse ahora la línea 6, si se introduce el delimitador, se grabaran en el archivo Diaz,Juan
que ya son dos cadenas independientes!
Para evitar este problema se puede usar la sentencia write#.

4.Sentencia write#:
Se usa para grabar datos secuencialmente en un archivo.
Su sintaxis es: write #narchivo, expresiones
Donde narchivo es el numero de archivo y expresiones es una lista de expresiones numéricas o de
caracteres que van a escribirse en el archivo.
La Sentencia write# inserta comas entre las expresiones de la lista al grabarse en el archivo e
inserta comillas en las cadenas, por lo tanto no hay necesidad de delimitadores.Finalmente inserta
un retorno de carro mas avance de línea.
Ej. Si ahora tenemos:
1. A=5:
2. B=10
3. write #1, A,B
4. apellido=”Diaz”
5. nombre=”Juan”
6. write #1, apellido,nombre
de tal forma que cuando se lean los datos con input #, la lectura se hara sin problema.

5.Sentencia input #:
Se usa para leer datos secuencialmente de un archivo y los asigna a las variables especificadas.
Su sintaxis es: input #narchivo, var1,var2 … varn

Donde narchivo es el numero de archivo y var1,var2 … varn son una lista de variables numéricas
o de caracteres que van a recibir los datos provenientes del archivo.
los datos provenientes del archivo, deben aparecer en el mismo orden que las variables del input
y deben tener el mismo tipo de dato.Si una variable es numérica y el dato no, se asigna cero a la
variable. Si se llega al final de archivo cuando se esta leyendo un dato se producirá un error.
Ejemplo: input #1, nombre,edad,teléfono,dirección.
Esta sentencia espera encontrar en el archivo una cadena,dos valores numéricos y una cadena al
final.

6.Sentencia Line input #.


Se usa para leer una línea completa secuencialmente de un archivo y los asigna a una variable de
cadena.
Su sintaxis es: Line input #narchivo, variable_de_cadena.
Donde narchivo es el numero de archivo y variable_de_cadena es una variable de cadena que va
a recibir los datos provenientes del archivo.
Esta sentencia lee todos los caracteres hasta el retorno de carro, se salta el retorno de carro y el
avance de línea y la próxima sentencia Line input # vuelve a leer la siguiente línea hasta el
retorno de carro y asi sucesivamente.
Se usa especialmente para leer archivos de texto línea por línea.
Ejercicio: Colocar un archivo de texto en el escritorio y visualizarlo en una caja de texto multilinea
usando la sentencia line input.
7. Funcion Input(n, #narchivo).
Se usa para leer n caracteres secuencialmente de un archivo y los asigna a una variable de
cadena.
Su sintaxis es: variable$ =input(n,#narchivo)

Donde narchivo es el numero de archivo y variable$ es una variable de cadena que va a recibir los
n datos provenientes del archivo.
Esta sentencia lee todos los caracteres, incluyendo las comas, saltos de línea, retorno de carro,
comillas,comas y espacios iniciales.
Ejemplo: x$= input(1,#2).
Esta sentencia lee y devuelve 1 carácter cada vez que se use.

Ejercicio: Colocar un archivo de texto en el escritorio, leerlo y visualizarlo en una caja de texto
multilinea usando la funcion input.

8.Funcion EOF().
Indica si se ha llegado al final del archivo.
Su sintaxis es: EOF(#archivo)
Se usa para evitar cometer errores al intentar obtener mas información mas alla del final del
archivo.Devuelve true si alcanza el final del archivo y false en caso contrario.
Ejemplo. Usar EOF para detectar el final del archivo al leer los datos usando la sentencia Line
input #.

Rem leer el mismo archivo de texto prueba usado en los ejemplos anteriores.
Open “rutadelarchivo” for input as #1
While Not EOF(1)
Line input #1, Cadena
Txts.text= cadena
Wend
close

Potrebbero piacerti anche