Instrucción leer e instrucción guardar. Introducción a archivos

Anuncio
aprenderaprogramar.com
Instrucción leer e instrucción
guardar. Introducción a archivos
(ficheros) con Visual Basic
(CU00327A)
Sección: Cursos
Categoría: Curso Visual Basic Nivel I
Fecha revisión: 2029
Autor: Mario R. Rancel
Resumen: Entrega nº26 del Curso Visual Basic Nivel I
29
© 2006-2029 aprenderaprogramar.com
Instrucción leer e instrucción guardar. Introducción a archivos con VB.
INSTRUCCIÓN LEER E INSTRUCCIÓN GUARDAR. INTRODUCCIÓN A ARCHIVOS CON VB.
Advertencia: una manipulación incorrecta de ficheros puede dar lugar a la pérdida de datos, al
malfuncionamiento de programas o a fallos del sistema operativo del ordenador. Es necesario disponer
de copias de seguridad de toda información que se considere importante.
Guardar datos a un disco o recuperar los datos previamente guardados son procesos fundamentales en
cualquier lenguaje informático. La importancia del almacenamiento de contenidos es obvia: envío de
información a otros usuarios, posponer el trabajo varios días o semanas sin tener que introducir
manualmente los datos de nuevo, acceso a información almacenada en sistemas remotos, etc. Incluso
para desarrollos de software de relativamente corta longitud resulta relevante la gestión de datos, por
ahorrar una cantidad de tiempo considerable.
Ficheros y bases de datos constituyen un cuerpo de conocimiento de cierta complejidad y extensión.
Por motivos de espacio no vamos a hacer más que una breve introducción a ellos.
Podemos pensar en los ficheros o archivos de forma análoga a lo que sería un archivo físico: un lugar
donde hay información almacenada. Ahora bien, eso no nos dice cómo se encuentra esa información: si
está ordenada (alfabéticamente, de mayor a menor, en impresos con campos predefinidos), si son
datos de un tipo o de varios tipos (numéricos, tipo texto, mezcla de tipos de datos...), si se leen usando
alguna clave de interpretación (una partitura no se lee igual que un texto), etc. Todo esto es relevante y
por ello normalmente sabremos qué tipo de datos contiene el fichero y cómo están ordenados antes de
acceder a él. No es lo mismo guardar "3246" como número tipo Integer que como cadena de
caracteres. Un tipo Integer ocupa 2 bytes y tiene una "clave" para su lectura, mientras que como
caracteres cada cifra ocupa un byte y se lee como si de texto se tratara.
Un asunto a considerar es si la información está contenida en campos de longitud predefinida.
Consideremos un archivo donde se almacenan los nombres, números de DNI y año de nacimiento de 3
personas. Podemos considerar diferentes casos:
a) Existen campos de longitud predefinida, que pueden carecer de información por no estar disponible.
Nombre: Alfredo
Nombre: Pedro
González Aparicio
Nombre: Ramón
González Pérez
DNI: 79555444
DNI:
DNI: 79666444
Año de nacimiento:
1975
Año de nacimiento:
1966
Año de nacimiento:
1981
En el fichero físico la información la guardamos en hojas preimpresas donde cada apartado tiene una
longitud disponible para escribir en él. En el fichero informático la información la guardamos en
© 2006-2029 aprenderaprogramar.com
Instrucción leer e instrucción guardar. Introducción a archivos con VB.
registros (un registro equivale a una hoja del fichero físico), constando cada registro de 3 campos
(campo "Nombre", campo "DNI" y campo "Año de nacimiento"). Los campos serían por ejemplo:
Nombre: tipo texto 25 caracteres de longitud.
DNI: tipo entero largo (Long).
Año de nacimiento: tipo entero (Integer).
Cada registro ocupa 25 + 4 +2 = 29 bytes. Si tenemos tres registros el fichero ocupa 29 * 3 = 87 bytes,
independientemente de que los datos realmente existan o no, ya que el espacio se encuentra
disponible para albergar un dato.
b) La información no está en campos de longitud predefinida.
Pedro González Aparicio. 1966.
Alfredo Pérez Pérez. 79555444. 1975.
Ramón González Pérez. 79666444.
1981.
En el fichero físico la información la guardamos en hojas donde escribimos los datos disponibles para
cada persona. En el fichero informático la información la guardamos en líneas (cada línea equivale a la
información disponible de una persona) sabiendo que cada línea puede tener información de uno o
varios aspectos (nombre, DNI y edad) y una longitud variable.
No sabemos cuántos bytes nos ocupa cada línea ni cuántos bytes nos ocupa el fichero. No sabemos en
qué posición se encuentra una información dada porque no tenemos referencias de situación. Ante
ello, optamos por hacer una lectura tipo "texto" en la que un número de 8 cifras nos va a requerir 8
bytes frente a los 4 bytes que supondrían como tipo Long.
© 2006-2029 aprenderaprogramar.com
Instrucción leer e instrucción guardar. Introducción a archivos con VB.
c) La información no está en campos de longitud predefinida pero se dispone de información referente
a su ubicación.
Alfredo Pérez Pérez
79555444
1975
Pedro González Aparicio
1966
Ramón González Pérez
79666444
1981
Página 1 líneas 1 a 3
Página 2 líneas 1 a 2
Página 3 líneas 1 a 3
En el fichero físico la información la guardamos en hojas indexadas, donde cada dato dispone de un
localizador. Por ejemplo, en la página 3 línea 3 encontramos el dato correspondiente al año de
nacimiento de Ramón González. En el fichero informático la información la guardamos por bytes,
sabiendo que cada tipo de dato ocupa un número de bytes determinado. Así si guardamos Importe:
3235, podríamos hacerlo ocupando 11 bytes desglosados en 9 bytes (uno por carácter, incluidos los
espacios) asociados a "Importe:" como tipo texto + 2 bytes (para un tipo Integer) asociados al número
3235.
También podríamos guardarlo todo como tipo texto ocupando 13 bytes.
Una vez guardada la información, podríamos recuperarla indicándole al ordenador: Extrae como tipo
texto los bytes comprendidos entre 1 y 9 y como número los bytes comprendidos entre 10 y 11.
Hemos tratado de introducir, a través de la analogía con un fichero físico, enfoques básicos para la
comprensión y gestión de ficheros informáticos. La problemática, como se comprenderá, es muy amplia
al intervenir numerosos factores (directorios, unidades de disco, sobreescritura de archivos, borrado
accidental de datos, etc.) y posibilidades (datos ordenados, parcialmente ordenados o desordenados,
diversidad de tipos de datos, tramos de ficheros con registros y campos, etc.).
Nosotros estudiaremos simplificadamente cómo podemos gestionar ficheros con Visual Basic.
Próxima entrega: CU00328A
Acceso al curso completo en aprenderaprogramar.com -- > Cursos, o en la dirección siguiente:
http://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=37&Itemid=61
© 2006-2029 aprenderaprogramar.com
Descargar