3.283 cursos gratis
6.261.122 alumnos
Publica tu curso gratis
Busca cursos gratis:
Estás aquí: mailxmail > Cursos de Informática > Programación > Programación de juegos para móviles con J2ME > Recorriendo registros

Programación de juegos para móviles con J2ME

Autor: Alberto García Serrano
Curso:  4,52/5 4,52/5 (83 opiniones) |12480 alumnos|Fecha publicación: 07/09/2004

Capítulo 26:

 Recorriendo registros

Vamos a valernos del objeto RecordEnumeration para recorrer todos los registros almacenados en la base de datos. Para crear una enumeración utilizamos el método enumerateRecords().

public RecordEnumeration enumerateRecords(RecordFilter filtro,
    RecordComparator, comparador,boolean Actualizar)

Los dos primeros parámetros sirven para personalizar el recorrido de los registros. No entraremos en detalle, pero, gracias al primero podremos filtrar la búsqueda, y con el segundo podemos recorrer los registros de forma ordenada. El parámetro Actualizar indica si la enumeración debe actualizarse cuando realicemos alguna operación de inserción o borrado de registros. Si vas a hacer un recorrido rápido por los registros es mejor ponerlo a false para evitar la sobrecarga.

RecordEnumeration registro = null;

try {
    registro = recordStore.enumerateRecords(null, null, false);
    while (registro.hasNextElement())
        System.out.println (registro.nextRecordId());
} catch (Exception e) {}
Hay dos métodos interesantes del RecordEnumeration: hasNextElement() que devolverá el valor true si hay un siguiente elemento disponible para ser leído. Cada vez que leemos un elemento se adelanta el puntero al siguiente. El método nextRecordId() devuelve el identificador del siguiente registro.

El siguiente código muestra un ejemplo completo de uso de RMS.


import java.io.*;
import javax.microedition.midlet.*;
import javax.microedition.rms.*;

public class RMS extends MIDlet {

    // nombre de la BD
    static final String BD = "datos";

    String dato;
    int id, i;
    char b;

    public RMS() {
        RecordStore rs = null;

        // Borramos la BD si tenía algo
        try {
            RecordStore.deleteRecordStore(BD);
        } catch( Exception e ){}

        try {
            // Abrimos el recordStore
            rs = RecordStore.openRecordStore(BD, true);

            guardaRegistro(rs,"Datos del registro 1");
            guardaRegistro(rs,"Datos del registro 2");
            guardaRegistro(rs,"Datos del registro 3");

            // Leemos los registros
            RecordEnumeration registros = rs.enumerateRecords(null, null, false);
            // Recorremos todos los elementos
            while (registros.hasNextElement()) {

                // Obtenemos el ID del siguiente registro
                verRegistro(rs, registros.nextRecordId());
            }
            rs.closeRecordStore();
        } catch( RecordStoreException e ){
            System.out.println( e );
        }
        notifyDestroyed();
    }

    public void verRegistro(RecordStore rs, int id) {
        try {
            ByteArrayInputStream bais = new ByteArrayInputStream(rs.getRecord(id));
            DataInputStream is = new DataInputStream(bais);
            // leemos el registro
            try {
                dato = is.readUTF();
                System.out.println("-> "+dato);
            } catch (EOFException eofe) {
            } catch (IOException ioe) {}
        } catch (RecordStoreException e) {}
    }

    public void guardaRegistro(RecordStore rs, String dato) {
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        DataOutputStream os = new DataOutputStream(baos);
        try {
            // guadar el dato
            os.writeUTF(dato);
        } catch (IOException ioe) {}

        // extraer el array de butes
        byte[] b = baos.toByteArray();

        // lo añadimos al recordStore
        try {
            rs.addRecord(b, 0, b.length);
        } catch (RecordStoreException rse) {}
    }

    public void destroyApp( boolean unconditional ) {}

    public void startApp() {}

    public void pauseApp() {}
}

Capítulo siguiente - Comunicaciones
Capítulo anterior - Almacenamiento. RMS
Recibe nuestras novedades
Al presionar "Recibir" estás dándote de alta y aceptas las condiciones legales de mailxmail

Hay 83 opiniones. Opina sobre este curso.


Cursos similares a Programación de juegos para móviles con J2ME


Cursos Valoración Alumnos Vídeo
Funciones en C (primera parte)
Curso de programacíon informática sobre Funciones en C en el orden de los fundamentos de la programación. Comprende el desarrollo de un software utilizando funciones y a ... [17/10/08]
 4,50/5 2.816  
Procesos en C. Sincronización (primera parte)
Curso de informática sobre sincronización de procesos en C y señales en linux que te ofrece la posibilidad de comprender los mecanismos de comunicación entre procesos inf... [21/10/08]
5/5 993  
Java
Java nació con el deseo por parte de Sun de buscar un lenguaje de programación enfocado a electrodomésticos. Se necesitaba alg&uacu... [23/04/04]
 4,45/5 49.291  


Publicar en   del.icio.us    digg    meneame

¿Qué es mailxmail.com?|ISSN: 1699-4914|Recomiéndanos|Ayuda
Condiciones legales de mailxmail