03 septiembre, 2007

JAFramework

.
Acceso Directo a Registros

Los registros del archivo pueden numerarse según la posición que ocupan. Es decir: el primer registro será el número cero, el segundo será el número 1 y así sucesivamente.

La clase JAFile ofrece el método seek para acceder directamente al número de registro deseado.

El programa que veremos a continuación le pide al usuario que ingrese un número de registro, accede directamente al registro y muestra su contenido.

LeeAccesoDirecto.java
   1:
2:package demo;
3:
4:import framework.JAFactory;
5:import framework.JAFile;
6:import framework.JAFileFactory;
7:import framework.util.JAConsole;
8:
9:public class LeeAccesoDirecto
10:{
11: public static void main(String[] args)
12: {
13: JAFileFactory factory=JAFactory.getFileFactory();
14:
15: // levanto el descriptor a memoria
16: factory.load("descriptor.xml");
17:
18: // obtengo un puntero al archivo EMPLEADOS.txt
19: JAFile a = factory.getFile("EMPLEADOS.txt");
20:
21: REmpleado e = new REmpleado();
22:
23: // cantidad de registros del archivo
24: int cantRegs = a.filesize();
25:
26: // informo cuantos registros tiene el file
27: System.out.print("--- El Archivo tiene: ");
28: System.out.print(cantRegs);
29: System.out.println(" registros ---");
30:
31: // el usuario ingresa el nro. de registro
32: System.out.print("Nro. Registro: ");
33: int regNro = JAConsole.readInt();
34:
35: // si quiere finalizar ingresa un nro<0
36: while( regNro >= 0 )
37: {
38: // posiciono el puntero en el reg pedido
39: a.seek(regNro);
40:
41: // leo el registro posicionado
42: a.read(e);
43:
44: // muestro el registro
45: System.out.println(e);
46:
47: // vuelvo a pedir un nro de registro
48: System.out.print("Nro. Registro: ");
49: regNro = JAConsole.readInt();
50: }
51:
52: // cierro el archivo
53: a.close();
54: }
55:}
56:

Como vemos, en la línea 39 utilizamos el método seek para posicionar el puntero del archivo en el registro que queremos leer y luego lo leemos con el método read.

En las líneas 33 y 49 utilizamos la clase JAConsole para leer un valor por teclado. La funcionalidad de esta clase se explicará más adelante.

Podemos observar también, en la línea 24, el método filesize retorna la cantidad de registros que tiene el archivo.


Acceso Directo a través de un Indice

La misma operatoria aplica sobre los índices. Podemos acceder directamente a cualquier registro de un índice. Obviamente, si el índice es por el campo legajo entonces el registro número cero será aquel que tenga menor legajo.

LeeAccesoDirectoXIndice.java
   1:
2:package demo;
3:
4:import framework.JAFactory;
5:import framework.JAFile;
6:import framework.JAFileFactory;
7:import framework.JAIndex;
8:import framework.util.JAConsole;
9:
10:public class LeeAccesoDirectoXIndice
11:{
12: public static void main(String[] args)
13: {
14: JAFileFactory factory=JAFactory.getFileFactory();
15:
16: // levanto el descriptor a memoria
17: factory.load("descriptor.xml");
18:
19: // obtengo un puntero al archivo EMPLEADOS.txt
20: JAFile a = factory.getFile("EMPLEADOS.txt");
21:
22: // creo un indice x nombre
23: JAIndex idxNom = a.createIndexOn("nombre");
24:
25: REmpleado e = new REmpleado();
26:
27: // cantidad de registros del archivo
28: int cantRegs = a.filesize();
29:
30: System.out.print("--- El Archivo tiene: ");
31: System.out.print(cantRegs);
32: System.out.println(" registros ---");
33:
34: System.out.print("Nro. Registro: ");
35: int regNro = JAConsole.readInt();
36:
37: while( regNro >= 0 )
38: {
39: // posiciono el puntero
40: idxNom.seek(regNro);
41:
42: // leo el registro posicionado
43: idxNom.read(e);
44:
45: // muestro el registro
46: System.out.println(e);
47:
48: System.out.print("Nro. Registro: ");
49: regNro = JAConsole.readInt();
50: }
51:
52: // cierro el indice
53: a.destroyAllIndexes();
54:
55: // cierro el archivo
56: a.close();
57: }
58:}
59:


.........................,...................


.

.

No hay comentarios.: