• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 573
  • Last Modified:

J2ME RMS(Record Management System)

hi, wanna ask if someone could code out a sample code whereby it can store names and phone numbers into the RMS. Thank you.
0
bluelagoon88
Asked:
bluelagoon88
  • 6
  • 6
1 Solution
 
petmagdyCommented:
Here We go an example a game that stores top achieved scores, each record is (Name|#trials|Level#) example (John|13|2):



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

public class MMStore
{
//Single Tone Class
    protected RecordStore m_TopScores;    
   
    /** Creates a new instance of MMStore */
    public MMStore() throws Exception
    {
        m_TopScores = RecordStore.openRecordStore("MasterMindTS",true);
    }
   
   
    public void close() throws Exception
    {
        if(!m_bOpened)
        {
            return;
        }
        m_TopScores.closeRecordStore();
    }
   
 
     protected static byte[] constructRecord(Vector elements, char cSeparator)
    {
        String szRecord="";
        int nSize= elements.size();
        for(int i=0; i < nSize ; i++)
        {
            szRecord += (String) elements.elementAt(i);
            if( i < (nSize - 1))
            {    
                String sep = String.valueOf(cSeparator);
                szRecord += sep;
            }
        }
//System.out.println("Constructed szRecord: " + szRecord);      
       
        return szRecord.getBytes();
    }
   
   
   
    public int getTopScoresRecordsCount() throws RecordStoreNotOpenException
    {
        return m_TopScores.getNumRecords();
    }
   
   
   
   
    public Integer addTopScore(String szName, int nTrials) throws Exception
    {
        Vector elements = new Vector();
        int nLevel=2;
        elements.addElement(szName);
        elements.addElement(String.valueOf(nTrials));
        elements.addElement(String.valueOf(nLevel));
        byte[] record = constructRecord(elements,'|');
        int nRecID=m_TopScores.addRecord(record,0, record.length);
        return new Integer(nRecID);
    }
   
    public void removeAllScores() throws Exception
    {
        Hashtable topScores = new Hashtable();
//System.out.println("Start MMStore.getTopScores()");        
        RecordEnumeration enum = m_TopScores.enumerateRecords(null,null,false);
//System.out.println("enumerateRecords MMStore.getTopScores()");        
       
        if(enum == null)
        {
            return;
        }
        while(enum.hasNextElement())
        {
            int nRecId=enum.nextRecordId();
            m_TopScores.deleteRecord(nRecId);
        }
    }
 
}

0
 
bluelagoon88Author Commented:
petmagdy, can this code be modified so that it can be use to store only the names and numbers in a handphone? Currently doin a project that needs to store people's names and contacts into the handphone(RMS). Thanks in advance.
0
 
bluelagoon88Author Commented:
by the way.. i need to compile it as a MIDlet
Using Wireless toolkit to compile. Thanks again.
0
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 
petmagdyCommented:
You can store any thing u want it is not structured u are just as if u r storing rows, each row is a byte[], so u construct a string by cocatinating a name + '|' + handphone number, i am using '|' character as a separator u can choose something else, to construct ur MIDP application and compile and assemble ur application as JAD and JAR easily I recommend for u Sun Java studio Mobility 6 u can download it from

http://wwws.sun.com/software/download/products/41085de1.html

good luck
0
 
bluelagoon88Author Commented:
petmagdy, theres an error in the coding.. may i know what is the problem?


C:\WTK20\apps\MMStore\src\MMStore.java:19: cannot resolve symbol
symbol  : variable m_bOpened
location: class MMStore
        if(!m_bOpened)

            ^
1 error
com.sun.kvem.ktools.ExecutionException
Build failed
0
 
petmagdyCommented:
yes put under the line

    protected RecordStore m_TopScores;    

this line to define m_bOpened

protected boolean m_bOpened;

0
 
bluelagoon88Author Commented:
ok thanks.. i will see wat i can do..
0
 
bluelagoon88Author Commented:
theres an error in this set of code... wats the problem with it?

--------------------------------------------------------------------------------------------------

import javax.microedition.rms.*;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import java.io.*;
public class RecordStoreExample
      extends MIDlet implements CommandListener
{
  private Display display;
  private Alert alert;
  private Form form;
  private Command exit;
  private Command start;
  private RecordStore recordstore = null;
  private RecordEnumeration recordenumeration = null;
public RecordStoreExample ()
{
  display = Display.getDisplay(this);
  exit = new Command("Exit", Command.SCREEN, 1);
  start = new Command("Start", Command.SCREEN, 1);
  form = new Form("Record Store");
  form.addCommand(exit);
  form.addCommand(start);
  form.setCommandListener(this);
}
public void startApp()
{
  display.setCurrent(form);
}
public void pauseApp()
{
}
public void destoryApp (boolean unconditional)
{
}
public void commandAction(Command command, Displayable displayable)
{
  if (Command == exit)
{
  destoryApp(true);
  notifyDestoryed();
}
else if (command == start)
{
  try
  {
    recordstore = RecordStore.openRecordStore("myRecordStore", true);
  }
  catch (Exception error)
  {
    alert = new Alert("Error Creating", error.toString(), null, AlertType.Warning);
    alert.setTimeout(Alert.FOREVER);
    display.setCurrent(alert);
  }
  if (RecordStore.listRecordStores() != null)
  {
  try
    {
      RecordStore.deleteRecordStore("myRecordStore");
    }
  catch (Exception error)
  {
   alert = new Alert("Error Removing", error.toString(), null, AlertType.WARNING);
   alert.setTimeout(Alert.FOREVER);
   display.setCurrent(alert);
  }
  }
  }
 }
}

----------------------------------------------------------------------------------------------

Here's the error message:
c:\WTK104\apps\RecordStoreExample\src\RecordStoreExample.java:5: RecordStoreExample is not abstract and does not override abstract method destroyApp(boolean) in javax.microedition.midlet.MIDlet

public class RecordStoreExample

       ^

c:\WTK104\apps\RecordStoreExample\src\RecordStoreExample.java:37: cannot resolve symbol

symbol  : variable Command

location: class RecordStoreExample

  if (Command == exit)

      ^

c:\WTK104\apps\RecordStoreExample\src\RecordStoreExample.java:40: cannot resolve symbol

symbol  : method notifyDestoryed ()

location: class RecordStoreExample

  notifyDestoryed();

  ^

c:\WTK104\apps\RecordStoreExample\src\RecordStoreExample.java:50: cannot resolve symbol

symbol  : variable Warning

location: class javax.microedition.lcdui.AlertType

    alert = new Alert("Error Creating", error.toString(), null, AlertType.Warning);

                                                                         ^

4 errors
0
 
petmagdyCommented:
add this function to ur class

public void destroyApp(boolean unconditional)
{
}

please be case sensetive
0
 
petmagdyCommented:
Also in the line

  if (Command == exit)


change it to:

  if (command == exit)

0
 
petmagdyCommented:
sorry also u wrote this line wrongly:

  notifyDestoryed();

write it:


  notifyDestroyed();

Also change

    alert = new Alert("Error Creating", error.toString(), null, AlertType.Warning);

to

    alert = new Alert("Error Creating", error.toString(), null, AlertType.WARNING);

again be case sensitive
0
 
bluelagoon88Author Commented:
ok thx... i'll try it out
0

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

  • 6
  • 6
Tackle projects and never again get stuck behind a technical roadblock.
Join Now