منتدى مصر التقني
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

دورة الجافا الرسومية بأستخدام NetBeans ...الدرس(24)_برمجة تطيقات الجوال (6_التعامل مع نظام إدارة السجلات RMS)!

اذهب الى الأسفل

دورة الجافا الرسومية بأستخدام NetBeans ...الدرس(24)_برمجة تطيقات الجوال (6_التعامل مع نظام إدارة السجلات RMS)! Empty دورة الجافا الرسومية بأستخدام NetBeans ...الدرس(24)_برمجة تطيقات الجوال (6_التعامل مع نظام إدارة السجلات RMS)!

مُساهمة من طرف أحمد مناع السبت مايو 11, 2013 12:15 pm

بسم الله الرحمن الرحيم

أهلا وسهلا بكم إخوانى الكرام ....تعرفنا فى الدروس السابق على المكونات الرسومية التابعة للتويب 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"





دورة الجافا الرسومية بأستخدام NetBeans ...الدرس(24)_برمجة تطيقات الجوال (6_التعامل مع نظام إدارة السجلات RMS)! Fig1

دورة الجافا الرسومية بأستخدام NetBeans ...الدرس(24)_برمجة تطيقات الجوال (6_التعامل مع نظام إدارة السجلات RMS)! Rms-j2me

_ إنشاء مخزن السجلاتRecordStore ....توجد عدة طرق و اساليب لانشاء مخزن سجل RecordStore و ذلك على النحو التالى :

بداية يجب أستيراد المكتبة اللازمة 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 تبقى لنا أن نأخذ تمارين عمليه على نظام السجلات فى دروس قادمة أن شاء الله تعالى

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
أحمد مناع
أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 1108
النقاط : 202034
التقيم : 144
الدولة : مصر
الجنس : ذكر

https://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

دورة الجافا الرسومية بأستخدام NetBeans ...الدرس(24)_برمجة تطيقات الجوال (6_التعامل مع نظام إدارة السجلات RMS)! Empty رد: دورة الجافا الرسومية بأستخدام NetBeans ...الدرس(24)_برمجة تطيقات الجوال (6_التعامل مع نظام إدارة السجلات RMS)!

مُساهمة من طرف أحمد مناع الأحد مايو 12, 2013 10:21 pm

بسم الله الرحمن الرحيم


أهلا وسهلا إخوانى الكرام و مرحبا بكم مجددا ....بعد ما تعرفنا فى الجزء الاول من هذا الدرس عن كيفية التعامل مع نظام إدارة السجلات سنتعلم سويا انشاء تطبيق عملى وليكن مخزن كتب ....



الخطوة الاولى : قم بإضافة المكون 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




و ذلك من خلال نافذة الخصائص لوضع اسم مناسب لكل امر كما فى الشكل التالى :


دورة الجافا الرسومية بأستخدام NetBeans ...الدرس(24)_برمجة تطيقات الجوال (6_التعامل مع نظام إدارة السجلات RMS)! Egy-tech13683960581

كما يمكنك تغير Instance Name لاى أمر عن طريق تحديد الامر ثم النقر يميين ومن القائمة التى ستظهر أختر الامر rename ....وتلك هى الصورة النهائية للتصميم :


دورة الجافا الرسومية بأستخدام NetBeans ...الدرس(24)_برمجة تطيقات الجوال (6_التعامل مع نظام إدارة السجلات RMS)! Egy-tech13683960592

دورة الجافا الرسومية بأستخدام NetBeans ...الدرس(24)_برمجة تطيقات الجوال (6_التعامل مع نظام إدارة السجلات RMS)! Egy-tech13683960593
الخطوة الرابعة : كتابة الاكواد و ذلك على النحو التالى :


اولا : إنشاء الطرق اللازمة
_ الاعلان عن متغير للتعبير عن المخزن الذى سنقوم بإنشائة ....و ذلك باستخدام الكود التالى :

الكود:
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 لفتح فافذة الكود ووضع مؤشر الكتابة تحت الامر كما فى الشكل التالى :


دورة الجافا الرسومية بأستخدام NetBeans ...الدرس(24)_برمجة تطيقات الجوال (6_التعامل مع نظام إدارة السجلات RMS)! Egy-tech13683970041
و نكتب الكود التالى وهو تنفيذ الطريقة التى قمنا بانشائها توا لفتح المخزن ....

الكود:
 openRecStore();

_ الامر add .....نكتب الكود التالى

الكود:
 writeRecord(textField.getString());

الكود اعلاه يقوم باخذ القيمة التى يكتبها المستخدم فى حقل النص textField وتخزنها فى المخزن كسجل .



الامر viwe ....نكتب الكود التالى :

الكود:
 readRecords();

الامر delet ....نكتب الكود التالى :

الكود:
String s = textField.getString();
int no =Integer.parseInt(s);
  deletRecord(no);

أكمل باقى الاوامر بنفسك على نفس المنوال ......ونتيجة هذا البرنامج على النحو التالى :


دورة الجافا الرسومية بأستخدام NetBeans ...الدرس(24)_برمجة تطيقات الجوال (6_التعامل مع نظام إدارة السجلات RMS)! Egy-tech13683970043

دورة الجافا الرسومية بأستخدام NetBeans ...الدرس(24)_برمجة تطيقات الجوال (6_التعامل مع نظام إدارة السجلات RMS)! Egy-tech13683970042

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
أحمد مناع
أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 1108
النقاط : 202034
التقيم : 144
الدولة : مصر
الجنس : ذكر

https://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

دورة الجافا الرسومية بأستخدام NetBeans ...الدرس(24)_برمجة تطيقات الجوال (6_التعامل مع نظام إدارة السجلات RMS)! Empty رد: دورة الجافا الرسومية بأستخدام NetBeans ...الدرس(24)_برمجة تطيقات الجوال (6_التعامل مع نظام إدارة السجلات RMS)!

مُساهمة من طرف زهراء الأربعاء مايو 15, 2013 11:59 am

درس اكثر من رائع استاذى العزيز
زهراء
زهراء
........
........

تاريخ التسجيل : 18/02/2011
المساهمات : 438
النقاط : 769
التقيم : 67
الدولة : مصر
الجنس : انثى

الرجوع الى أعلى الصفحة اذهب الى الأسفل

دورة الجافا الرسومية بأستخدام NetBeans ...الدرس(24)_برمجة تطيقات الجوال (6_التعامل مع نظام إدارة السجلات RMS)! Empty رد: دورة الجافا الرسومية بأستخدام NetBeans ...الدرس(24)_برمجة تطيقات الجوال (6_التعامل مع نظام إدارة السجلات RMS)!

مُساهمة من طرف أيمن الإبراهيم الإثنين أغسطس 19, 2013 2:28 pm

استاذ احمد
اذا بدي اعمل قاعدة بيانات مثلا نتائج الامتحانات ورفعتها على الانترنت او من موقع ما واردت تصميم برنامج يقوم بكتابة اسم الطالب ويعطي عرض يقوم البرنامج بالاتصال بالانترنت واعطائه النتيجة
كيف طريقة تصميم البرنامج وشكرا
أيمن الإبراهيم
أيمن الإبراهيم
........
........

تاريخ التسجيل : 19/03/2013
المساهمات : 251
النقاط : 398
التقيم : 1
الدولة : سوريا
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة

ََ

مواضيع ذات صلة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى