Fecha y hora actual: Jueves 17 Ene 2019 04:44
Índice del Foro

Foros de programación informática, diseño gráfico y Web

En esta comunidad intentaremos dar soporte de programación a todos los niveles, desde principiantes a profesionales de la informática, desarrollo de programas, programación web y mucho más.

Curso VB .NET - Tema 1.37 - Archivos

Responder al Tema

Índice del Foro > Visual Basic .NET > Curso VB .NET - Tema 1.37 - Archivos

Autor Mensaje
Tesis
Administrador


Registrado: 04 Mar 2007
Mensajes: 3200
Ubicación: Valencia - España

Mensaje Publicado: Sábado 31 Oct 2009 19:32

Título del mensaje: Curso VB .NET - Tema 1.37 - Archivos

Responder citando

Curso de programación en .NET - Tema 1.37 - Archivos


1. Archivos.
1.1 Objetivos del tema.

Entrar en la filosofía de utilización de los archivos en programación.

1.2 Introducción.
En todos los programas es necesario en algún momento la conservación y la recuperación de datos.
La información que se maneja en el ordenador esta gestionada en base a dos medios de almacenamiento, uno temporal como es la Programa memoria y otro mas duradero como es el soporte magnético.

Las diferencias entre ambos, a parte del tema de la ejecución de los programas, estriban en la capacidad de permanecer la información en Entrada de los soportes cuando el ordenador es desconectado, mientras que la memoria no tiene esa característica, además la capacidad de datos en almacenamiento de la memoria es reducida.



La información, datos y programas que se utilizan tienen una nuestro estructura.
En la memoria la información se maneja en variables, arrays y programa listas.
En los soportes la información se maneja como archivos, registros y campos, con distintos tipos de acceso, que a su vez están condicionados por el tipo de soporte utilizado que sea o no direccionable.

Existen distintos tipos de archivos que se clasifican por el acceso a los datos que en ellos se graban.
También se podría hablar de los soportes para el almacenamiento de los datos de dichos archivos, pero sería salirse demasiado del contenido de estos apuntes.
Los archivos son direccionables y no direccionables, y los soportes han de guardar dicha relación, aunque hoy en realidad no hay soportes no direccionables, están en desuso, pero nombrado queda al menos.

Para la comunicación de un programa con los datos depositados en un archivo, necesitamos conocer varios datos.

    Nombre del archivo.
    Su ubicación en el sistema en el que trabajamos.
    La estructura de los datos almacenados en ese archivo.

La comunicación del programa con los datos a su vez se realiza a través del Sistema Operativo, al cual le facilitamos dicha información utilizando las instrucciones disponibles en el lenguaje de programación para el manejo de archivos.

El Sistema Operativo nos devolverá un medio de enlace que el lenguaje de programación utilizará para la comunicación con los datos del archivo. Ese medio de enlace es un canal, dicho canal en cada lenguaje de programación es representado de una forma diferente, pero al fin y al cabo es el elemento que representa al archivo en nuestro programa.

Los pasos en la utilización de un archivo son
    Abrir --> enlazar el archivo, con los datos comentados anteriormente.
    Leer o grabar --> recogida o envío de datos.
    Cierre --> al finalizar su utilización, liberar el enlace con el archivo.

En este apartado de utilización de archivos para el manejo de estructuras de datos, grabación y lectura, también se debe incluir las bases de datos, que al fin y al cabo son archivos en los que depositamos información, pero debido a que las bases de datos generan archivos y estructuras de datos que son gestionados por otros programas externos a nuestro lenguaje, -Sistemas Gestores de Bases de datos-, MySql, Oraqle, SQL Server, etc..., la gestión de los mismos es más compleja y no vamos a entrar en ello ahora.

1.3 Gestión de los archivos.
Con el considerable volumen al que llegan los soportes es imprescindible una adecuada gestión de los mismos para aprovechar su capacidad y aligerar al máximo la localización de los datos en los mismos. Para ello es necesario establecer una serie de características y sistemas que nos faciliten la gestión de administración del sistema de archivos. Por otro lado, ya internamente, también existirá un sistema y una estructura para la gestión de cada uno de los registros que componen el archivo.

Tablas de asignación de archivos en los soportes.
    Cuando un soporte es de escasa capacidad no existen problemas en la gestión del mismo, de hecho en los primeros sistemas de cinta se asignaba una cinta por archivo, los primeros P. C. usaban un disquete de 160 kb. y no tenían directorios. Pero a medida que se amplía la capacidad es necesario mejorar la asignación y agilizar los accesos, lo cual obliga a tener un sistema ágil de gestión, a tener una tabla de la distribución de los espacios que sea fácil y rápida de manejar. Las tablas de asignación de archivos varían su estructura de uno a otro S. O., pero básicamente los datos que contienen son los siguientes.

Nombre.
    El nombre con el que el programador le asigna cuando lo crea. Este nombre reunirá una serie de características léxicas y sintácticas que varían en función del S. O. como longitud, extensiones, tipos de caracteres a usar. Las extensiones se utilizan para identificar los archivos del mismo tipo. El nombre incluye la dirección del archivo en el ordenador o en el lugar en el que esté colocado.

    “Unidad:\Archivo.Ext”
    C:\Archivo.ext

    “\\Ordenador\Unidad:\Archivo.Ext”
    \\Ordenador\C:\Directorio\MiArchivo.ext”

Tamaño.
    El tamaño hace referencia al volumen de datos que tiene el fichero generalmente, no al espacio que ocupa en disco, que puede ser superior. Se mide en bytes, palabras o bloques.

Ubicación.
    Hace referencia a una dirección de inicio del archivo, o donde esta el puntero del último registro. Luego cada uno de los bloques que el archivo ocupa está encadenado con los otros bloques que ocupa.

Propiedades, atributos, protecciones, permisos.
    Características del archivo, una serie de bytes que activados o no indican las propiedades del archivo, posibilidades de acceso para el control de lectura y escritura.



Datos de fecha y hora.
    Ultima fecha de cuando se modificó o Archivo creó el archivo.


1.4 Estructura de un archivo.
La estructura de un archivo va depender del destino que tenga el contenido del mismo.
No va a ser el mismo tipo de estructura el de un archivo de vídeo o sonido que el de un archivo de datos. Registro Empezando por los archivos de datos, en ellos vamos a encontrarnos básicamente con dos tipos de estructuras.



Entendemos por estructura la distribución de los datos en el archivo.
Un archivo se compone de registros, filas si deseamos llamarlo así.
Cada registro se divide a su vez en campos, o columnas si deseamos llamarlo así.
Cada uno de los campos contendrá una información y le corresponderá un tipo de datos de los que el lenguaje de programación contemple.

A su vez puede darse el caso que un archivo pueda tener distintos tipos de estructuras:
    Todos los registros son iguales.
    Hay uno o varios registros de cabecera.
    Registros de detalle.




También se puede dar dos tipos de registros:
    Registros de longitud fija.
    Registros de longitud variable.





1.5 Tipos de archivos, por su direccionamiento.
Hay dos tipos de archivos
  1. No direccionables.
  2. Direccionables.

Los archivos no direccionables son archivos en los cuales no podemos acceder a un registro de datos sin haber leído previamente los anteriores.



A pesar de su característica, no están por ello en desuso ya que tiene como contrapartida lo compacto que son ya que el aprovechamiento del espacio ocupado es del cien por cien.

Suelen utilizarse para almacenar información que se intercambia entre distintos procesos o empresas para el envío de información en formatos compatibles.



Los archivos direccionables permiten acceder a la información sin haber leído los registros anteriores, lo cual les da velocidad en el acceso.

Se pueden grabar en cualquier tipo de soporte, ya que al no ser direccionable, no requiere que el soporte lo sea. A cambio, nunca hay nada gratis, no son tan compactos como un archivo secuencial, por el sistema de direccionamiento necesario en su gestión. Se tiene que grabar en un soporte direccionable, no se pueden grabar en una cinta de casete por ejemplo.

1.6 Tipos de archivos, por su contenido.
Podemos crear dos grandes tipos. Los archivos de programa en sus distintos formatos, y el resto de archivos que serán siempre archivos de datos en sus distintas facetas.
  • Configuración del sistema
  • Ordenes para el sistema
  • Datos
  • Texto
  • Sonido
  • Imágenes
  • Video

Cada uno de estos tipos de archivo dispondrá de una estructura definida por el creador del formato.

Un archivo de ordenes puede ser de este tipo en MS-DOS, Windows.
Código:
Echo Script respaldo-bd.sh
Rem C:\Windows\Command
Rem Respaldar DB2 y Websphere
Rem Probe: Trae

Echo
Echo " Generando respaldo de los FS de usuarios, WebSphere y db2 ...."
tar cvf \dev\rmt0 \usr\usuarios \usr\local\WebSphere \usr\local\Software
\usr\local\db2\dbgis

Echo " Fin del respaldo ...... OK "
Echo " DONE "
Echo


Suponiendo que estas direcciones fueran posibles y el comando existiera.
En LINUX de esta forma
Código:
Script respaldo-bd.sh
#!/bin/ksh
#Respaldar DB2 y Websphere
#Probe: Trae
#

echo ""
echo " Generando respaldo de los FS de usuarios, WebSphere y db2 ...."
tar cvf /dev/rmt0 /usr/usuarios /usr/local/WebSphere /usr/local/Software
/usr/local/db2/dbgis
sleep 5;
echo " Fin del respaldo ...... OK "
echo " DONE "
echo
#


Lo mismo sucede con los archivos de sonido, imágenes, vídeo, etc.
A su vez cada uno de estos archivos tiene asociado un programa que es capaz de leerlo para interpretar y poder utilizar sus datos.

1.7 Tipos de archivos, por su duración en el tiempo.
Los archivos también pueden clasificarse por el uso que se hace de ellos.
Copias de seguridad.
    Son archivos que tienen la imagen de otro igual a ellos, en otro soporte o directorio.

De trabajo, temporales.
    Son los que se crean de forma provisional para realizar un trabajo y al finalizar el trabajo desaparecen.

Maestros.
    Contienen todos los datos de una determinada información, clientes, artículos, proveedores, etc..

Movimientos.
    Contienen información cuya duración es breve, pues esta a la espera de ser procesada para desaparecer una vez ejecutado el programa de bajas de clientes, altas, una vez ejecutado el programa ya no hace falta la información.

Histórico.
    Contienen la información que es el resultado de procesos normales de gestión de periodos de tiempo ya pasados, facturas, movimientos contables, calificaciones.


1.8 Estructuras de los registros.
Los registros de datos pueden grabarse básicamente en dos tipos de formatos.
    Con delimitadores de campos
    Sin delimitadores de campos

En el primer caso permite sin ningún problema los registros de longitud variable, en el segundo normalmente serán de longitud fija.
Podemos ver un ejemplo con delimitadores de campo.



Los delimitadores son las comas para separar los campos y las comillas para delimitar los campos de texto, los campos numéricos no llevan delimitadores de campo. Al final de cada registro hay una marca de final de registro. Este registro puede ser indistintamente de longitud fija o variable. Su definición podría ser así:



Los datos numéricos se pueden almacenar de ambas formas, numéricos o alfanuméricos, siempre y cuando previo a su utilización se conviertan al tipo de dato adecuado.

El siguiente ejemplo es un registro sin delimitadores de campo:
0001DENOMINACIONCAMPOCAMPOCAMPO
0002DENOMINACIONCAMPOCAMPOCAMPO


Este formato no lleva delimitadores de campo ni separadores de campo.

Al final de cada registro podrá o no llevar marga de final de registro, dependerá del diseño que se aplique por quienes lo utilizan, puede usarse de ambas formas. Su definición podría ser así:



En el primer caso la definición de los campos no necesita de una delimitación de los mismos desde el programa que los trata, solo es necesario conocer el orden en el que aparecen los datos.

En el segundo se hace imprescindible que el programa conozca el diseño del registro incluyendo la longitud de cada uno de los campos y su tipo de campo para saber que lo que se está leyendo es un campo numérico o alfanumérico.
Esta es la definición de la estructura de dos tipos de archivos de datos estándar. La estructura de los tipos de archivos restantes vendrá dada por el propietario del formato y se basan siempre en estructuras que arrancan a partir de estas.

1.9 Actuaciones con archivos.
Desde el momento en que un archivo se utiliza para almacenar datos se hace imprescindible el implementar un sistema de mantenimiento de dicha información. Esos procesos se basan en procesos de actualización y de impresión.

1.9.1 Procesos de actualización.
Implica el diseño de programas que permitan la:
    Inserción Adición de registros no existentes.
    Actualización Modificación del contenido de datos existentes.
    Borrado Eliminación de datos.


En el caso de archivos no direccionables, secuenciales, el proceso de actualización se basa en la creación previa de un archivo que contiene las modificaciones del archivo original, para posteriormente lanzar un programa que realice la inserción, actualización y borrado de los registros en el archivo original, creando un nuevo archivo con los cambios realizados.



En el caso de archivos direccionables la actualización se realiza sobre el registro directamente, sin necesidad de actuar sobre el archivo en su conjunto.
Conviene tener presente que un archivo se puede leer con cualquier programa, independientemente del lenguaje en el que esté escrito, respetando eso sí, los tipos de datos que en el mismo se han grabado.
Si se conoce la estructura del archivo, los tipos de datos que posee son compatibles con el lenguaje que estamos utilizando, el archivo puede ser leído por el programa que escribamos, aunque no se haya escrito en el mismo lenguaje que en el que se grabó.

1.9.2 Procesos de impresión.
Los procesos de impresión pueden o no considerarse dentro de los anteriores, es cuestión de gustos.
La impresión de los datos habitualmente implica ofrecer la posibilidad de obtener los datos clasificados por alguno de los datos que existen en el archivo, alfabéticamente, por código, por cursos, por población, etc..

También la de realizar filtrados de dicha información, bien porque se realice una impresión parcial de la información, desde el diez hasta el 30, o porque se seleccione solo determinados datos, los de una población, etc..

1.10 Ejercicios propuestos.
Los ejercicios los proponemos en el tema personalizado del lenguaje, Java o Visual Basic.



Autor del curso: casiopea


Normas del foro
Aprende a postear correctamente usando las etiquetas
Volver arriba
Ver perfil del usuario Enviar mensaje privado
Responder al Tema
Mostrar mensajes anteriores:   
Ir a:  
Todas las horas están en GMT + 2 Horas

Temas relacionados

Tema Autor Foros Respuestas Publicado
El foro no contiene ningún mensaje nuevo

necesito ayuda con el algoritmo de dijkstra en ...

mery Python 0 Jueves 13 Dic 2018 18:07 Ver último mensaje
El foro no contiene ningún mensaje nuevo

Curso de PHP-WordPress avanzado

wordpressadict PHP 1 Domingo 27 Nov 2016 19:59 Ver último mensaje
El foro no contiene ningún mensaje nuevo

Porque no puedo descargar archivos desde la nube?

reeccom Visual Basic .NET 0 Sábado 28 May 2016 18:08 Ver último mensaje
El foro no contiene ningún mensaje nuevo

Curso fundamentos de programación

Yaser Programación en general 0 Miércoles 18 May 2016 00:28 Ver último mensaje
El foro no contiene ningún mensaje nuevo

Procesar y facturar con archivos .xml mediante ...

Monje_Babuino C, C#, Visual C++ 0 Viernes 04 Mar 2016 16:53 Ver último mensaje
Panel de Control
No puede crear mensajes, No puede responder temas, No puede editar sus mensajes, No puede borrar sus mensajes, No puede votar en encuestas,