1. Archivos secuenciales
Fecha: 11 de Abril
Las aplicaciones de una computadora necesitan almacenar
información en soporte permanente. Dicha información, cuyo
tamaño puede variar desde unos pocos bytes hasta terabytes,
puede tener accesos concurrentes desde varios procesos.
Además, dicha información tiene su ciclo de vida que
normalmente no está ligada a una única aplicación.
Archivo secuencial es la forma más simple de almacenar y
recuperar registros de un archivo. En un archivo secuencial, se
almacenan los registros uno tras otro. El primer registro
almacenado se coloca al principio del archivo. El segundo se
almacena inmediatamente después (no existen posiciones sin uso), el tercero después del segundo,
etc. Este orden nunca cambia en la organización secuencial.
Una característica de los archivos secuenciales es que todos los registros se almacenan por posición:
de primer registro, segundo registro, etc.
Ventajas:
Los archivos secuenciales proveen la mejor utilización de espacio y son rápidos cuando los
registros son accedidos secuencialmente.
Los archivos con poca volatilidad, gran actividad y tamaño variable son altamente susceptibles
de ser organizados secuencialmente.
La ventaja más importante de la técnica de organización secuencial de archivos es la capacidad
de acceso al "siguiente" registro rápidamente: Mientras que el patrón de acceso a un archivo
secuencial se conforme al ordenamiento de registros en el archivo, los tiempos de acceso serán
muy buenos. Sin embargo, si el patrón de acceso al programa no se conforma al patrón de
ordenamiento de los registros, entonces la eficiencia del programa disminuirá.
Otra ventaja de los archivos de organización secuencial es que son muy sencillos de usar y
aplicar.
Desventajas:
El acceso a un registro es pobre, la localización de un determinado registro no se puede hacer
individualmente no de manera rápida, y el acceso aleatorio es impráctico.
Además, en los archivos secuenciales la dirección de registro está implícita y están vulnerables
a fallas del sistema.
En estos archivos, la información sólo puede leerse y escribirse empezando desde el principio del
archivo.
Los archivos secuenciales tienen algunas características que hay que tener en cuenta:
La escritura de nuevos datos siempre se hace al final del archivo.
Para leer un dato concreto del archivo hay que avanzar siempre hasta donde se encuentre dicho
dato. Si el dato requerido se encuentra antes del dato en que está se está posicionado el archivo en
un momento dado, será necesario regresar al comienzo del archivo y avanzar hasta el dato
necesario.
2. Desarrollo
1. Crear un archivo de texto y nombrar como desee (el nombre no debe tener espacios), agregar
por lo menos 10 renglones (registros) con los siguientes datos: nombre, dirección, teléfono y
email, edad y dos campos más que usted defina (para esta práctica se usó “Sexo” y
“Escolaridad”). Los datos deben estar separados por el caracter coma “,”. El archivo debe
guardarse como UTF-8.
2. Crear un nuevo proyecto con el nombre “appDevTequila_5”. En NetBeans ir a nuevo proyecto
y seleccionar “Java-> Java Aplication”. Indicar a NetBeans que NO genere la clase principal
(main).
3. Crear tres paquetes nuevos “control”, “modelo” y “vistas”.
4. Dentro del paquete “control” crear una nueva clase (java class) de nombre “Principal” y escribir
el siguiente código (por ahora ignorar los errores):
5. Dentro del paquete “vistas” crear un nuevo “jFrame Form” y nombrarlo “Menu”. Guardar todo.
Los errores de “Principal” deben haber desaparecido, de no ser así, comprobar la sección de
“imports” y la sintaxis.
6. En “Menu” agregar un “jMenuBar” (figura 1), editar el texto de una de las opciones que tiene
por defecto, cambiarlo a “Leer” y del menú emergente editarlos como “Leer todos” y “Buscar”.
Figura 1
7. Ir al evento “actionPerformed” del elemento “Leer Todos” haciendo clic derecho sobre el
elemento y seleccionar ”Events -> Actions -> actionPerformed”. Figura 2.
Figura 2
3. 8. Dentro del evento escribir el siguiente código (ignorar los errores):
9. Ir al paquete vistas y agregar un nuevo “jDialog”, nombrarlo “Leer” (una vez creado puedes
incluir de una vez el “import vistas.Leer” que hace falta en “Menu”). El jDialog debe lucir como
muestra la figura 3.
Figura 3
10. Ir al evento “actionPerformed” del botón “Cargar archivo” y escribir el siguiente código (ignorar
solo el error de “Modelo m = new Modelo()”):
4. 11. Establecer en el actionPerformed del botón “Cerrar” la instrucción “this.dispose();”
12. Ir al paquete “modelo” y agregar una nueva clase de nombre “Modelo” y escribir el siguiente
código:
13. Ejecutar la aplicación y revisar que existan errores, ahora la aplicación debe poder leer el archivo
desde la ruta especificada en la caja de texto (jTextField).
5. 14. Ir a “vistas” y crear un nuevo “jDialog” con el nombre “LeerIndividual”. El jDialog debe lucir como
la figura 4. Una vez agregados los componentes de debe cambiar su nombre de variables como
lo indica la figura 4, Para hacer esto ir al panel “Code” y cambiar la propiedad “Variable Name”
(ver figura 5).
jlblNombre
jlblDireccion
jlblTelefono
jlblEmail
jlblEdad
jlblSexo
jlblEscolaridad
Figura 4
Figura 5
15. Ir a “Modelo” y agregar el método “getFila” con el siguiente código:
6. 16. Regresar a “LeerIndividual” y agregar el siguiente código al “actionPerformed” del botón
“Buscar” (agregar al botón “Cerrar” el método para cerrar el jDialog). Agregar los “imports”
faltantes.
17. Ejecutar la aplicación y buscar un registro por nombre (el nombre debe ser escrito tal y como
aparece en el archivo).
18. Agregar a “vistas” un nuevo jDialog y nombrarlo “Escribe”, agregar los componentes y sus
nombres como indica la figura 6.
7. txtNombre
txtDireccion
txtTelefono
txtEmail
txtEdad
txtSexo
txtEscolaridad
Figura 6
19. Ir al evento “actionPerformed” del botón “Guardar” y escribir el siguiente código:
8. 20. Ir a “Modelo” y escribir el siguiente método:
21. Ir a “Menu” y agregar al “actioPerformed” del menú “Agregar” el código necesario para llamar
la instancia de “Escribe” (no se puede poner directamente sobre el menú, es necesario un
“MenuItem”).
22. Ejecutar la aplicación y agregar un nuevo registro.
RETO
Resolver los siguientes reactivos:
Modificar la clase “Modelo” para que el caracter “comodin” se defina de la misma forma que el
atributo “ruta” (desde el constructor).
¿Qué es el conjunto de componentes que recibe el método “getFila” de la clase “Modelo”?
Reduzca la cantidad de líneas de código del método “getFila” de la clase “Modelo”. (algo similar
a lo que ocurre en el medoto “escribe” de la clase “Modelo”)
Modifique el código para que no sea necesario proporcionar la ruta en los formularios, esto es
se establecerá una ruta al archivo por defecto.
Modifique/Agregue el código para que el componente “jtxtTelefono” NO acepte letras.
Modifique el código del evento “actionPerformed” del botón “Guardar” (del jDialog Escribe)
para que especifique mediante un mensaje cuál campo está vacío y le establezca el foco al
mismo.
Esta es una creación del club de programación, a veces programar puede ser divertido.