الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

نسخ الـ RecordStore

مغلق
بدأه JDurrah في 17 أكتوبر 2010 · 3 رد · 485 مشاهدة · في JavaME
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم.

أريد أن أعمل Backup للـ RecordStore... كيف يمكن أن أقوم بهذا؟.

#2

يمكتنك حفظه مره اخرى ولكن باسم جديد

وبهذا تم تخزين نسخه اخرى

يعنى انا مثلا

فى هذا الكود

قومت بعمل كلاس تأخذ اسم الrecord فى كل مره استخدمها

لذلك يمكنك بدلا من تستخدمها مره وتخزن بها يمكنك استخدامها مره اخرى

ومممكن تضيف عليها تعديلات اخرى

import java.io.UnsupportedEncodingException;
import java.util.Enumeration;
import java.util.Hashtable;
import javax.microedition.rms.*;

/**
 *
 * @author Mahmoud Mahrous
 */
public class MakeRecordStore {

	String recordName;
	Hashtable recordHashtable;

	/**
 	* 
 	* @param recordName
 	* @throws RecordStoreException
 	*/
	public MakeRecordStore(String recordName) throws RecordStoreException, UnsupportedEncodingException {
    	this.recordName = recordName;
    	recordHashtable = new Hashtable();
    	loadData();
	}

	/**
 	*
 	* @throws RecordStoreException
 	*/
	private void loadData() throws RecordStoreException, UnsupportedEncodingException {

    	RecordStore recordStore = null;
    	RecordEnumeration recordEnumeration = null;
    	try {
        	recordStore = RecordStore.openRecordStore(recordName, true);
        	recordEnumeration = recordStore.enumerateRecords(null, null, false);
        	while (recordEnumeration.hasNextElement()) {
            	byte[] row = recordEnumeration.nextRecord();
            	String converter = new String(row, "UTF-8");
            	int index = converter.indexOf('|');
            	String key = converter.substring(0, index);
            	String value = converter.substring(index + 1);
            	put(key, value);
        	}
    	} finally {
        	if (recordEnumeration != null) {
            	recordEnumeration.destroy();
        	}
        	if (recordStore != null) {
            	recordStore.closeRecordStore();
        	}
    	}
	}

	/**
 	*
 	* @param key
 	* @param value
 	*/
	public void put(String key, String value) {
    	if (value == null) {
        	value = "";
    	}
    	recordHashtable.put(key, value);
	}

	/**
 	* 
 	* @param key
 	* @return
 	*/
	public String get(String key) {
    	return (String) recordHashtable.get(key);
	}

	/**
 	* 
 	* @throws RecordStoreException
 	*/
	public void save() throws RecordStoreException, UnsupportedEncodingException {
    	RecordStore recordStore = null;
    	RecordEnumeration recordEnumeration = null;
    	try {
        	recordStore = RecordStore.openRecordStore(recordName, true);
        	recordEnumeration = recordStore.enumerateRecords(null, null, false);
        	while (recordEnumeration.hasNextElement()) {
            	int nextRecordID = recordEnumeration.nextRecordId();
            	recordStore.deleteRecord(nextRecordID);
        	}
        	Enumeration keys = recordHashtable.keys();
        	while (keys.hasMoreElements()) {
            	String key = (String) keys.nextElement();
            	String value = get(key);
            	String concat = key + "|" + value;
            	byte[] rowByte = concat.getBytes("UTF-8");
            	recordStore.addRecord(rowByte, 0, rowByte.length);
        	}
    	} finally {
        	if (recordEnumeration != null) {
            	recordEnumeration.destroy();
        	}
        	if (recordStore != null) {
            	recordStore.closeRecordStore();
        	}
    	}
	}
}

Software Developer
Mahmoudkelany.com


 

#3

كيف يمكن القراءة من الريكورد والبحث عن قيمة معينه بداخله؟

#4

باستخدام الداله get

التى بالكود

تعطيها الـ key وهى تعود لك بالـ value

Software Developer
Mahmoudkelany.com


 

هذا الموضوع مغلق.

مواضيع مشابهة