دورة الجافا الرسومية بأستخدام NetBeans ...الدرس(24)_برمجة تطيقات الجوال (6_التعامل مع نظام إدارة السجلات RMS)!
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: برمجة تطبيقات الجوال Java ME
صفحة 1 من اصل 1 • شاطر
دورة الجافا الرسومية بأستخدام NetBeans ...الدرس(24)_برمجة تطيقات الجوال (6_التعامل مع نظام إدارة السجلات RMS)!
بسم الله الرحمن الرحيم
أهلا وسهلا بكم إخوانى الكرام ....تعرفنا فى الدروس السابق على المكونات الرسومية التابعة للتويب Displayable و ايضا المكونات التابعة للتويب Items ....درس اليوم سنتعلم فيه سوياً كيفية التعامل مع Record Management System وقبل أن نبدأ تعالوا نتعرف على بعض المفاهيم :1_ مفهوم نظام أدراة السجلات (RMS)
نظام إدارة السجلات RMS هو إختصار للجملة الانجليزية Record Management System وهو آلية أو قاعدة بيانات بسيطة المنحى للتخزين البيانات باستمرار واسترجاعها في وقت لاحق و التى يوفره المورد MIDlets أو معلومات الملف الشخصي الجهاز المحمول
2_ مفهوم السجلات Records
السجلات هى عبارة عن مصفوفة من البيانات من نوع bytes تمكن المطور من تخزين البيانات فيها عن طريق الكائن DataOutputStream و الكائن DataInputStream و ايضا الكائن ByteArrayOutputStream ويتم تحديد السجلات بشكل فريد و إعطاء كل سجل مفتاح اساسى بحيث يبدأ برقم واحد للسجل الاول داخل ما يسمى "مخزن السجلات " RecordStore
3_ مفهوم مخزن السجلات RecordStore
هو عبارة عن مجموعة من السجلات المرتبطة بمنصة MIDlets و التى ستبقى ثابتة معه ...ويتم تسمية كل مخزن سجل RecordStore بأسم فريد لتميز كل مخزن عن الاخر ويجب أن يكون الاسم من نوع String ولا يزيد عن 32 حرف كما أن أسماء مخزن السجلات حساسة لحالة الاحرف فمثلا"EgyTech " ليست مثل" egytech"
بداية يجب أستيراد المكتبة اللازمة rms.RecordStore فى اى من الطريق التى سيتم التعرف عليها و ذلك عن طريق الكود التالى :
- الكود:
import javax.microedition.rms.RecordStore;
الطريقة الاولى : الاعلان عن مخزن السجل RecordStore و إعطاء اسم مناسب له بأستخدام الكود التالى :
- الكود:
private RecordStore myegy = null;
كما ترى أخى الكريم فى الكود أعلاه قمنا بالاعلان عن مخزن السجل myegy وجعلنا القيمة له تساوى null
الطريقة الثانية :فتح و انشاء مخزن السجل بدون أى شروط باستخدام الكود التالى :
- الكود:
RecordStore.openRecordStore("myegy",true);
الطريقة الثالثة :فتح و انشاء مخزن السجل بشرط جعل منصات MIDlet الاخرى قادرة للوصول اليه و السماح بالكتابة فيه و ذلك با ستخدام الكود التالى :
- الكود:
RecordStore.openRecordStore("myegy", true,2, true);
وكما ترون فى الكود أعلاه يتضمن 4 عوامل :
_ myegy ....وهو أسم مخزن السجل المراد إنشائه
_ true ...وهى لانشاء المخزن الذى قمنا بتحديد اسمه و يمكنك جعلها flase أذا كنت قد أنشأتها بالفعل
_ الرقم 2 ....وهو متغير من نوع int للتعبير عن حالة الوصول هذا المخزن و تأخذ قيمتين 1_ AUTHMODE_PRIVATE و التى تعنى جعل المخزن myegy لا يمكننا الوصول اليه من خلال المنصات الاخرى .....2_AUTHMODE_ANY اى يمكن الوصول الية
_ True ....متغير منطقى للتعبير عن أمكانية الكتبة فى هذا المخزن من خلال المنصات الاخرى
_ الاستثناءات الناتجة من فتح و إنشاء مخزن السجل RecordStore
...
عند استخدامك لاحد الطرق السابقة فى انشاء وفتح مخزن السجل RecordStore سينتج الاستثناءات التالية :
_ RecordStoreException ....وهو خطأ يظهر فى حالة وجود مشكلة ما اثناء فتح وانشاء مخزن السجل
_ RecordStoreNotFoundException...وهو خطأ يظهر فى حالة محاولة فتح مخزن السجل غير موجود ....كأستخدامك مثلا الطريقة الاولى لانشاء المخزن واستخدام الامر التالى لفتحه :
- الكود:
RecordStore.openRecordStore("myegy",false);
ففى الكود السابق نحاول فتح المخزن myegy وقد قمنا باستخدام الامر false أى أن المخزن قد انشأناه من قبل
_ RecordStoreFullException .....هذا الخطأ يظهر فى حالة كون مخزن السجل ممتلىء
_IllegalArgumentException .....هذا الخطأ يظهر فى حالة كونك تستخدم اسم لمخزن السجل غير صالح للاستخدام .
_ إغلاق مخزن سجل
- الكود:
myegy.closeRecordStore();
_حذف مخزن سجل
- الكود:
RecordStore.deleteRecordStore("myegy");
_ الحصول على حجم مخزن السجل :
- الكود:
myegy.getSize();
و الكود السابق يقوم بإرجاع مقدار المساحة، بالبايت،
_ إضافة سجل الى مخزن السجلات .:
يتم إضافة سجل الى مخزن السجلات باستخدام الكود التالى :
- الكود:
myegy.addRecord(byte[] data, int offset, int numBytes)
وكما ترون فى الكود أعلاه يطلب منك ثلاث عوامل لاضافة سجل جديد وهى على النحو التالى :
المعامل الاول data .... وهى البيانات التي سيتم تخزينها في هذا السجل ويجب أن تكون البيانات ذات طول
صفري أى مصفوفة من نوع byte..... قد تكون هذه المعلمة فارغة null اذا اردت إضافة سجل فارغ
المعامل الثانى offset ...رقم المؤشر إلى المخزن المؤقت للبيانات من أول بايت ذات الصلة لهذا السجل
المعامل الثالث numBytes ....وهى عدد وحدات البايت المراد حجزها من المخزن myegy لهذا السجل
مثال :
- الكود:
byte[] name ="ahmed".getBytes();
myegy.addRecord(name,0,name.length);
فى السطر الاول قمنا بعمل مصفوفه من نوع byte اسمها name ووضع فيها القيمة ahmed ....أما السطر الثانى فقمنا باضافة سجل جديد لمخزن السجل RecordStore باستخدام الاسلوب addRecord
مع تحديد البيانات المراد تخزنيها بالسجل وهى فى مثالنا هذا المصفوفة name ثم وضعنارقم المؤشر لهذا السجل (0)...وايضا عدد الواحدات لهذا السجل و ذلك باستخدام الاسلوب name.length
_ قراءة سجل
- الكود:
byte[] getRecord(int recordId)
كما ترون فى الكود اعلاه تجد أن الاسلوب getRecord يقوم بإرجال قيمة السجل بناء على رقم المعرف الخاص به record Id فقلد أخبرنا بداية الدرس أنه يتم حديد السجلات بشكل فريد و إعطاء كل سجل مفتاح اساسى id
بحيث يبدأ برقم واحد للسجل الاول ...أذن السجل الذى قمت باضافة فى المثال السابق المفتاح الاساسى له هو رقم 1 ...و بالتالى فإن القراءة ستكون كما يلى :
- الكود:
byte[] data = myegy.getRecord(1);
_ تحديث سجل ...اذا اردت تحديث سجل موجود من قبل ببعض البيانات نستخدم الكود التالى :
- الكود:
byte[] name ="syed".getBytes();
myegy.setRecord(1,name,0,name.length);
طبعا رقم 1 هذا هو الرقم المعرف للسجل الذى قمنا بإضافته فى بداية المثال
_ حذف سجل ....اذا اردت حذف سجل أستخدم الكود التالى :
- الكود:
myegy.deleteRecord(1);
_ عدد السجلات فى مخزن السجل .......يمكنك تحديد عدد السجلات فى مخزن السجل الحالى باستخدام الكود التالى :
- الكود:
myegy.getNumRecords();
_ الحصول على حجم السجل بالبايت
- الكود:
myegy.getRecordSize(1);
الى هنا نكون قد انتهيا من الشرح المبدئى لكيفية التعامل مع نظام إدارة السجلات Rms تبقى لنا أن نأخذ تمارين عمليه على نظام السجلات فى دروس قادمة أن شاء الله تعالى
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
رد: دورة الجافا الرسومية بأستخدام NetBeans ...الدرس(24)_برمجة تطيقات الجوال (6_التعامل مع نظام إدارة السجلات RMS)!
بسم الله الرحمن الرحيم
أهلا وسهلا إخوانى الكرام و مرحبا بكم مجددا ....بعد ما تعرفنا فى الجزء الاول من هذا الدرس عن كيفية التعامل مع نظام إدارة السجلات سنتعلم سويا انشاء تطبيق عملى وليكن مخزن كتب ....
الخطوة الاولى : قم بإضافة المكون form وذلك من خلال التويب flow وسحب المكون من القائمة Displayable
الخطوة الثانية : قم بإضافة المكون TextField ويتم وضعة على النافذة form
الخطوة الثالثة : نقوم بإضافة عدد 8 اوامر Command من نوع itemcommand ويتم تنسيقهم على النحو التالى :
إنهاء Label
Instance Name exit
فتح المخزن Label
Instance Name open
إضافة Label
Instance Name add
حذف Label
Instance Name delet
عدد السجلات Label
Instance Name no
عرض Label
Instance Name view
إغلاق Label
Instance Name close
حجم المخزن Label
Instance Name size
Instance Name exit
فتح المخزن Label
Instance Name open
إضافة Label
Instance Name add
حذف Label
Instance Name delet
عدد السجلات Label
Instance Name no
عرض Label
Instance Name view
إغلاق Label
Instance Name close
حجم المخزن Label
Instance Name size
و ذلك من خلال نافذة الخصائص لوضع اسم مناسب لكل امر كما فى الشكل التالى :
اولا : إنشاء الطرق اللازمة
_ الاعلان عن متغير للتعبير عن المخزن الذى سنقوم بإنشائة ....و ذلك باستخدام الكود التالى :- الكود:
private RecordStore rs = null;
_ نقوم بعمل طريقة و ليكن openRecStore لفتح و انشاء المخزن و ذلك على النحو التالى :
- الكود:
public void openRecStore(){
try{
rs=RecordStore.openRecordStore("myegy", true );
}catch (Exception e){}
}
ويجب ملاحظة اننا استخدمنا التعليمة try ..... catch و ذلك لمعالجة الاستثناءات التى اشرنا لها فى شرح الدرس
_ نقوم بعمل طريقة لاغلاق المخزن .....على النحو التالى :
- الكود:
public void closeRecStore(){
try{
rs.closeRecordStore();
}catch (Exception e){}
}
_ نقوم لعمل طريقة لاضافة سجل للمخزن ,,,,,, وذلك على النحو التالى :
- الكود:
public void writeRecord(String str){
byte[] rec = str.getBytes();
try{
rs.addRecord(rec, 0, rec.length);
}catch (Exception e){}
}
و يمكنك ملاحظة تننا قمنا بإنشاء طريقة ذات معامل str
_ نقوم بعمل طريقة لعرض جميع سجلات المخزن .....وذلك على النحو التالى :
- الكود:
public void readRecords(){
try{
byte[] recData = new byte[5];
int len;
for(int i = 1; i <= rs.getNumRecords(); i++){
if(rs.getRecordSize(i) > recData.length){
recData = new byte[rs.getRecordSize(i)];
}
len = rs.getRecord(i, recData, 0);
form.append("--------------------");
form.append("أسم الكتاب_ " + i + " : " + new String(recData, 0, len));
form.append("--------------------");
}
}catch (Exception e){}
ويمكنك ملاحظة اننا قمنا باستخدام حلقة تكرارية للحصول على رقم id الخاص بكل سجل من سجلات المخزن باستخدام الطريقة getRecordSize ومن ثم استخدام رقم id للحصول على قيمة السجل عن طريق الطريقة getRecord
_ نقوم بعمل طريقة لجلب عدد السجلات فى المخزن .....على النحو التالى :
- الكود:
public void noRecord(String str){
try{
rs.getNumRecords();
}catch (Exception e){}
}
_ نقوم بعمل طريقة لمعرفة حجم المخزن بالبايت .....على النحو التالى :
public void sizeRecStore(){
try{
rs.getSize();
}catch (Exception e){}
}
_ نقوم بعمل طريقة لحذف سجل من المخزن .....وذلك على النحو التالى :
- الكود:
public void deletRecord(int id){
try{
rs.deleteRecord(id);
}catch (Exception e){}
}
ثانيا : كتابة الاكواد اللازمة تحت كل أمر command وذلك على النحو التالى :
_ الامر open .......المطلوب منه فتح المخزن أذن سنقوم بتحديد الامر ثم النقر يمين ومن القائمة التى ستظهر نختار الامر go to source لفتح فافذة الكود ووضع مؤشر الكتابة تحت الامر كما فى الشكل التالى :
- الكود:
openRecStore();
_ الامر add .....نكتب الكود التالى
- الكود:
writeRecord(textField.getString());
الكود اعلاه يقوم باخذ القيمة التى يكتبها المستخدم فى حقل النص textField وتخزنها فى المخزن كسجل .
الامر viwe ....نكتب الكود التالى :
- الكود:
readRecords();
الامر delet ....نكتب الكود التالى :
- الكود:
String s = textField.getString();
int no =Integer.parseInt(s);
deletRecord(no);
أكمل باقى الاوامر بنفسك على نفس المنوال ......ونتيجة هذا البرنامج على النحو التالى :
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
رد: دورة الجافا الرسومية بأستخدام NetBeans ...الدرس(24)_برمجة تطيقات الجوال (6_التعامل مع نظام إدارة السجلات RMS)!
درس اكثر من رائع استاذى العزيز
زهراء- ........
- تاريخ التسجيل : 18/02/2011
المساهمات : 438
النقاط : 769
التقيم : 67
الدولة :
الجنس :
رد: دورة الجافا الرسومية بأستخدام NetBeans ...الدرس(24)_برمجة تطيقات الجوال (6_التعامل مع نظام إدارة السجلات RMS)!
استاذ احمد
اذا بدي اعمل قاعدة بيانات مثلا نتائج الامتحانات ورفعتها على الانترنت او من موقع ما واردت تصميم برنامج يقوم بكتابة اسم الطالب ويعطي عرض يقوم البرنامج بالاتصال بالانترنت واعطائه النتيجة
كيف طريقة تصميم البرنامج وشكرا
اذا بدي اعمل قاعدة بيانات مثلا نتائج الامتحانات ورفعتها على الانترنت او من موقع ما واردت تصميم برنامج يقوم بكتابة اسم الطالب ويعطي عرض يقوم البرنامج بالاتصال بالانترنت واعطائه النتيجة
كيف طريقة تصميم البرنامج وشكرا
أيمن الإبراهيم- ........
- تاريخ التسجيل : 19/03/2013
المساهمات : 251
النقاط : 398
التقيم : 1
الدولة :
الجنس :
| |
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: برمجة تطبيقات الجوال Java ME
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى
أمس في 7:09 pm من طرف moslema_r
» شركة تنظيف فرشات بالرياض
الثلاثاء مارس 26, 2024 6:26 pm من طرف moslema_r
» شركة تنظيف استراحات بالرياض
الأحد مارس 24, 2024 10:49 pm من طرف moslema_r
» كشف تسربات المياه في جدة
السبت مارس 23, 2024 7:23 pm من طرف gmalnagy
» خدمات كشف تسربات المياه بخصم 25% - اتصل الان
السبت مارس 23, 2024 7:22 pm من طرف gmalnagy
» شركة تنظيف ثريات بالرياض
الخميس مارس 21, 2024 7:23 pm من طرف moslema_r
» كهربائي منازل بالرياض
الأحد مارس 17, 2024 1:52 pm من طرف رانيا حماد
» افضل شركة نقل عفش بالرياض نقل باكستاني 40% خصم | موقع الانوار
الأحد مارس 17, 2024 1:25 pm من طرف رانيا حماد
» افضل معلم جبس بالرياض تركيب جبس بورد بالرياض 20% خصم اتصل الآن
الأحد مارس 17, 2024 1:09 pm من طرف رانيا حماد
» شراء اثاث مستعمل بالكويت بخصم 30%
الأحد مارس 17, 2024 12:54 pm من طرف رانيا حماد