Tải bản đầy đủ (.ppt) (11 trang)

Bài giảng điện tử môn tin học: Hệ thống quản lý bản ghi ppsx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (499.57 KB, 11 trang )

08/13/14
1
Võ Phương Bình – ITFAC - DLU

Giới thiệu

Ghi và đọc

Duyệt bản ghi

Sắp xếp

Tìm kiếm
08/13/14Võ Phương Bình – ITFAC - DLU
2

RMS - Record Management System:

Là cơ chế để các ứng dụng MIDlet lưu trữ, truy
xuất và thao tác dữ liệu trên thiết bị di động.

Dữ liệu sẽ được lưu trữ bền trên thiết bị ngay cả
khi ứng dụng không còn thực thi.

Lớp bản ghi: RecordStore

javax.microedition.rms. RecordStore;
08/13/14Võ Phương Bình – ITFAC - DLU
3

Khởi tạo:



RecordStore rs =
RecordStore.openRecordStore(String filename,
boolean createnew)

Ghi:

rs.addRecord(byte[] rec, int start, int length);

Đọc:

rs.getRecord(int index, byte[] recData, int offset);
08/13/14Võ Phương Bình – ITFAC - DLU
4

Các phương thức:

String[] listRecordStores();

int getNumRecords();

int getRecordSize(int index);

void closeRecordStore();

void deleteRecordStore(String filename);
08/13/14Võ Phương Bình – ITFAC - DLU
5

Sử dụng Stream:


ByteArrayOutputStream strmBytes;

DataOutputStream strmDataType = new
DataOutputStream(strmBytes);

Ghi:

strmDataType.writeUTF(String sData);

strmDataType.writeBoolean(boolean bData);

strmDataType.writeInt(int iData);

Đọc:

strmDataType.readUTF();

strmDataType.readBoolean();

strmDataType.readInt();
08/13/14Võ Phương Bình – ITFAC - DLU
6

Sử dụng bộ đếm bản ghi Enumerator.

Cho pho phép di chuyển đến trước và sau các bản ghi
trong vùng bản ghi.

Điểm mạnh: Sắp xếp, Tìm kiếm.


Ví dụ:

RecordEnumeration re =
rs.enumerateRecords(Filter, Compator, false);

while (re.hasNextElement())

{

String str = new String(re.nextRecord());

System.out.println(str);

}
08/13/14Võ Phương Bình – ITFAC - DLU
7

Thực thi giao diện RecordComparator.

Định nghĩa lại hàm so sánh compare:

class Comparator implements RecordComparator

{

public int compare(byte[] rec1, byte[] rec2)

{
String str1 = new String(rec1), str2 = new String(rec2);

int result = str1.compareTo(str2);
if (result == 0)
return RecordComparator.EQUIVALENT;
else if (result < 0)
return RecordComparator.PRECEDES;
else
return RecordComparator.FOLLOWS;

}

}
08/13/14Võ Phương Bình – ITFAC - DLU
8

Ví dụ:
08/13/14Võ Phương Bình – ITFAC - DLU
9

Thực thi giao diện RecordFilter

class SearchFilter implements RecordFilter

{

private String searchText = null;

public SearchFilter(String searchText) {

this.searchText = searchText.toLowerCase();


}

public boolean matches(byte[] candidate) {

String str = new String(candidate).toLowerCase();

if (searchText != null && str.indexOf(searchText) != -1)

return true;

return false;

}

}
08/13/14Võ Phương Bình – ITFAC - DLU
10

Sử dụng lớp SearchFilter :

private void searchRecordStore()

{

if (rs.getNumRecords() > 0)

{

SearchFilter search = new SearchFilter(tfFind.getString());


RecordEnumeration re = rs.enumerateRecords(search, null,
false);

if (re.numRecords() > 0)

siMatch.setText(new String(re.nextRecord()));

re.destroy();

}

}

}
08/13/14Võ Phương Bình – ITFAC - DLU
11

×