我正在创建一个读/写RMS记录的J2ME应用程序。我能读写
在RMS中记录但现在的问题是我想通过接受一些值来删除记录
比如accountNumber
RMS记录的格式。
101,ABC,12345,12345
和String str包含以下数据。
String str=accountSrNumber +","+ name +","+ balance +","+ TextDeposit;
deleteRecStore(str,accountSrNumber);
我需要接受来自用户的accountNumber(101)并需要删除此记录 这是我的删除方法。
public void deleteRecStore(String str, String accNumber121) //
{
int s=str.indexOf(accNumber121);
System.out.println("index in delete function"+s);
if(s==0)
{
try{
rs.deleteRecord(s);
// RecordStore.deleteRecordStore(REC_STORE);
System.out.println("record delete successfully");
}
catch (Exception e)
{}
}
}
我尝试使用方法rs.deleteRecord(s)
和RecordStore.deleteRecordStore(REC_STORE);
但没有人帮忙。
答案 0 :(得分:4)
你总是删除作为第一条记录的记录0,这是一个坏主意。 例如,如果添加两个记录并删除它们,然后添加另一个记录,则它将被索引为2,因此您必须调用deleteRecord(2)将其删除。 方法deleteRecordStore()删除整个recordStore(包含记录) - 之后,如果你创建一个,下一个添加的记录将被索引为零。
如果我明白了,你想用它的acoountNumber删除一条记录。 如果我是对的,你需要通过它的内容找到recordID。代码可能看起来像这样(可能有错误,没有测试,但想法很重要):
public void deleteRecStore(String accNumber121) {
RecordEnumeration e = rs.enumerateRecords();
int found = -1;
while (e.hasMoreElements()) {
int id = e.nextRecordId();
String next = new String(e.nextRecord());
if (next.startsWidth(accNumber121)) {
found = id;
}
}
if (found == -1) {
System.out.println("not found!");
} else {
rs.deleteRecord(found);
}
}