hesamy2004
شنبه 30 خرداد 1388, 21:38 عصر
دوستان بعد از یک هفته ور رفتن با دیتابیس RMS موفق شدم شاخ غول رو بشکنم!!! و یک رکورد درست کنم و اطلاعاتم رو داخلش بنویسم. ولی بدبختی اینجاست که اطلاعات داخل رکورد بصورت فایل ذخیره نمیشه و باید با هربار اجرای نرم افزار دوباره رکورد رو پر کنم (که خیلی احمقانس!)
کلی تو وب چرخیدم ولی یه قسمت برنامه خوب پیدا نکردم که هم یاد بگیرم و هم ازش بتونم استفاده کنم. اگر کسی یه برنامه ای داره که از Jsr 75 استفاده کرده تا دیتا رو روی فایل در دایرکتوری برنامه ذخیره کنه، لطف کنه و در اینجا برای من بزاره که خیلی بهش محتاجم. الان کل برنامم لنگ این قسمته.
handinux
شنبه 30 خرداد 1388, 22:06 عصر
دوست عزیز اطلاعاتی که در RMS می نویسید ماندگار هستند تا وقتی که خودتان آنها را پاک کنید.شاید شما در شبیه ساز با بستن هر بار شبیه ساز چنین اشتباهی کرده اید.در device اینطوری نیست.در ضمن برای کار با jsr75میدلت شما می بایست sign شده باشد در غیر اینصورت با هر بار دستیابی به مموری از کاربر تایید می خواد که زیاد جالب نمی شه.
hesamy2004
شنبه 30 خرداد 1388, 22:29 عصر
دمت گرم و سرت خوش باد دوست من که روحم رو شاد کردی.
درست میگفتی رو موبایل که تست کردم دیدم همینطور بود. ولی مشکلی بود و اونم اینکه اول کار یه دیتابیس میساختم و اطلاعاتم رو توش میریختم ولی دفعات بعد میتونستم تو دیتابیس بنویسم ولی وقتی میخوندم اطاعات جدید رو نشون نمیداد و فقط اطلاعات قبلی رو نشون میداد.
نمونه کدی رو که نوشتم میرازم. اگه زحمتی نیست چکش کنید ببینید مشکل از چیه (البته طولانی نیست). من فکر میکنم کد باید درست باشه ولی نمیدونم چرا دفعات بعد که به رکورد اضافه میکنم، اون رو نشون نمیده.
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.rms.*;
public class RMSallread extends MIDlet implements CommandListener
{
private Display display;
private TextBox tbEditor;
private Command cmWrite;
private Command cmRead;
private Command cmDeleteRec;
private Command cmExit;
private RecordStore rs = null;
static final String REC_STORE = "db_1";
public RMSallread()
{
display = Display.getDisplay(this);
tbEditor = new TextBox("Enter your data", "", 50, TextField.ANY);
cmExit = new Command("Exit", Command.EXIT, 1);
cmWrite = new Command("Write", Command.SCREEN, 1);
cmRead = new Command("Read", Command.SCREEN, 2);
cmDeleteRec = new Command("Delete", Command.SCREEN, 3);
tbEditor.addCommand(cmWrite);
tbEditor.addCommand(cmRead);
tbEditor.addCommand(cmDeleteRec);
tbEditor.addCommand(cmExit);
tbEditor.setCommandListener(this);
}
public void startApp()
{
display.setCurrent(tbEditor);
}
public void pauseApp()
{
}
public void destroyApp(boolean unconditional)
{
notifyDestroyed();
tbEditor = null;
}
public void commandAction(Command c, Displayable s)
{
if(c == cmWrite)
{
int RecordID = writeRecord(tbEditor.getString());
Alert a1 = new Alert("Stored!", "Your data stored in this"
+ " location: " + RecordID, null, null);
a1.setTimeout(2000);
a1.setType(AlertType.CONFIRMATION);
display.setCurrent(a1);
}
else if(c == cmRead)
{
readRecords();
}
else if(c == cmExit)
{
notifyDestroyed();
}
else if(c == cmDeleteRec)
{
closeRecStore();
deleteRecStore();
if(RecordStore.listRecordStores() == null)
{
Alert a1 = new Alert("Record Deleted", "There is no "
+ "record/data base", null, null);
a1.setTimeout(1000);
a1.setType(AlertType.WARNING);
display.setCurrent(a1);
}
}
}
//////////////////////////////////////////////////////////////////////////
// Record Store
//////////////////////////////////////////////////////////////////////////
public void openRecStore()
{
try
{
rs = RecordStore.openRecordStore(REC_STORE, true);
}
catch(Exception e)
{
db(e.toString());
}
}
public void closeRecStore()
{
try
{
rs.closeRecordStore();
}
catch(Exception e)
{
db(e.toString());
}
}
public void deleteRecStore()
{
if(RecordStore.listRecordStores() != null)
{
try
{
RecordStore.deleteRecordStore(REC_STORE);
}
catch(Exception e)
{
db(e.toString());
}
}
}
public int writeRecord(String str)
{
byte[] rec = str.getBytes();
int i = 0;
try
{
openRecStore();
i = rs.addRecord(rec, 0, rec.length);
closeRecStore();
}
catch(Exception e)
{
db(e.toString());
}
return i;
}
public void readRecords()
{
try
{
openRecStore();
if(rs.getNumRecords() > 0)
{
int i;
String editor = "";
byte[] recData = new byte[50];
RecordEnumeration re = rs.enumerateRecords(null,
null, false);
i = re.numRecords();
//while(re.hasNextElement())
for(int j=1; j <= i; j++)
{
//recData = rs.getRecord(re.nextRecordId());
recData = rs.getRecord(j);
String str = new String(recData);
editor = editor + str + " ";
tbEditor.setString(editor);
}
closeRecStore();
}
}
catch(Exception e)
{
db(e.toString());
}
}
private void db(String str)
{
System.err.println("Msg: " + str);
}
}
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.