mahdi68
دوشنبه 28 دی 1388, 15:39 عصر
سلام
وقتی از RMS استفاده میکنیم برای اینکه بعد از تغییر محتوای رکورد اون تغییرات save بشن و در اجرای دوباره بشه رکورد تغییر داده شده رو دید چیکار باید کرد ؟؟؟ من تو کد زیر رکورد تغییر میدم ولی بعد اینکه برنامه میبندم و دوباره اجرا میکنم تغییرات اعمال نمیشه !!! من میخوام برنامه وقتی برای بار اول اجرا میشه یه record store ایجاد کنه و تعدادی رکورد بهش اضافه کنه بعد این رکورد ها رو ویرایش و ذخیره کنم حالا مشکلم اینه که هر بار که برنامه اجرا میشه این کارا تکرار میشن و تغییرات که تو رکورد ها دادم از بین میرن !!! لطفا راهنماییم کنید که چطوری این مشکل حل کنم
متشکرم
/*
* this is sampel code for use RMS
*
*/
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.rms.*;
/**
* @author mahdi
*/
public class Midlet extends MIDlet implements CommandListener {
Form form;
TextField userName, password, recordsNuml;
Command cmd1, cmd2;
private RecordStore rs;
int id1, id2, id3;
String str, str1,str2;
byte[] rec;
public void startApp() {
//////////Form and Items and Command dicliration
userName = new TextField("user name :", null, 20, TextField.ANY);
password = new TextField("password :", null, 20, TextField.ANY);
recordsNum = new TextField("Recoeds Num :", null, 20, TextField.ANY);
form = new Form("Login", new Item[]{userName, password, recordsNum});
cmd1 = new Command("Exit", Command.EXIT, 1);
cmd2 = new Command("OK", Command.OK, 1);
form.setCommandListener(this);
form.addCommand(cmd1);
form.addCommand(cmd2);
////////////Create RecordStore
try {
rs = RecordStore.openRecordStore("ID", true);
} catch (RecordStoreException ex) {
ex.printStackTrace();
}
////////////////add records
String user = "mahdi", pass = "مهدی", java = "java";
byte[] byte1 = user.getBytes(), byte2 = pass.getBytes(), byte3 = java.getBytes();
try {
id1 = rs.addRecord(byte1, 0, byte1.length);
id2 = rs.addRecord(byte2, 0, byte2.length);
id3 = rs.addRecord(byte3, 0, byte3.length);
} catch (Exception ex) {
ex.printStackTrace();
}
/////////Display Form
Display.getDisplay(this).setCurrent(form);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
notifyDestroyed();
}
public void commandAction(Command c, Displayable d) {
if (c == cmd1) {
destroyApp(true);
}
if (c == cmd2) {
try {
//rs.setRecord(id1, "Java".getBytes(), 0, "java".length());
recordsNum.setString(String.valueOf(rs.getNumRecor ds()));
userName.setString(new String(rs.getRecord(id1)));
password.setString(new String(rs.getRecord(id2)));
str2 = userName.getString() + "OK";
rs.setRecord(id1, str2.getBytes(), 0, str2.length());
} catch (RecordStoreNotOpenException ex) {
ex.printStackTrace();
} catch (InvalidRecordIDException ex) {
ex.printStackTrace();
} catch (RecordStoreException ex) {
ex.printStackTrace();
}
}
}
}
وقتی از RMS استفاده میکنیم برای اینکه بعد از تغییر محتوای رکورد اون تغییرات save بشن و در اجرای دوباره بشه رکورد تغییر داده شده رو دید چیکار باید کرد ؟؟؟ من تو کد زیر رکورد تغییر میدم ولی بعد اینکه برنامه میبندم و دوباره اجرا میکنم تغییرات اعمال نمیشه !!! من میخوام برنامه وقتی برای بار اول اجرا میشه یه record store ایجاد کنه و تعدادی رکورد بهش اضافه کنه بعد این رکورد ها رو ویرایش و ذخیره کنم حالا مشکلم اینه که هر بار که برنامه اجرا میشه این کارا تکرار میشن و تغییرات که تو رکورد ها دادم از بین میرن !!! لطفا راهنماییم کنید که چطوری این مشکل حل کنم
متشکرم
/*
* this is sampel code for use RMS
*
*/
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.rms.*;
/**
* @author mahdi
*/
public class Midlet extends MIDlet implements CommandListener {
Form form;
TextField userName, password, recordsNuml;
Command cmd1, cmd2;
private RecordStore rs;
int id1, id2, id3;
String str, str1,str2;
byte[] rec;
public void startApp() {
//////////Form and Items and Command dicliration
userName = new TextField("user name :", null, 20, TextField.ANY);
password = new TextField("password :", null, 20, TextField.ANY);
recordsNum = new TextField("Recoeds Num :", null, 20, TextField.ANY);
form = new Form("Login", new Item[]{userName, password, recordsNum});
cmd1 = new Command("Exit", Command.EXIT, 1);
cmd2 = new Command("OK", Command.OK, 1);
form.setCommandListener(this);
form.addCommand(cmd1);
form.addCommand(cmd2);
////////////Create RecordStore
try {
rs = RecordStore.openRecordStore("ID", true);
} catch (RecordStoreException ex) {
ex.printStackTrace();
}
////////////////add records
String user = "mahdi", pass = "مهدی", java = "java";
byte[] byte1 = user.getBytes(), byte2 = pass.getBytes(), byte3 = java.getBytes();
try {
id1 = rs.addRecord(byte1, 0, byte1.length);
id2 = rs.addRecord(byte2, 0, byte2.length);
id3 = rs.addRecord(byte3, 0, byte3.length);
} catch (Exception ex) {
ex.printStackTrace();
}
/////////Display Form
Display.getDisplay(this).setCurrent(form);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
notifyDestroyed();
}
public void commandAction(Command c, Displayable d) {
if (c == cmd1) {
destroyApp(true);
}
if (c == cmd2) {
try {
//rs.setRecord(id1, "Java".getBytes(), 0, "java".length());
recordsNum.setString(String.valueOf(rs.getNumRecor ds()));
userName.setString(new String(rs.getRecord(id1)));
password.setString(new String(rs.getRecord(id2)));
str2 = userName.getString() + "OK";
rs.setRecord(id1, str2.getBytes(), 0, str2.length());
} catch (RecordStoreNotOpenException ex) {
ex.printStackTrace();
} catch (InvalidRecordIDException ex) {
ex.printStackTrace();
} catch (RecordStoreException ex) {
ex.printStackTrace();
}
}
}
}