امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
j2me
نویسنده پیام
ha_60 آفلاین
بنيانگذار سايت
******

ارسال‌ها: 4,637
موضوع‌ها: 216
تاریخ عضویت: آبان ۱۳۸۳

تشکرها : 560
( 6556 تشکر در 2385 ارسال )
ارسال: #12
 
سایت جالبه باز هم می شه
این فایل ها هم یکم سعی تلاش می خواد حل می شه :wink:

هادی امین زاده
دیدن چیزی که همه می بینند هنر نیست
بانک اطلاعات صنایع ایران.
۱۳-اسفند-۱۳۸۵, ۱۲:۴۲:۲۱
وب سایت ارسال‌ها
پاسخ
sara_maedeh آفلاین
كاربر دو ستاره
**

ارسال‌ها: 60
موضوع‌ها: 9
تاریخ عضویت: بهمن ۱۳۸۵

تشکرها : 0
( 5 تشکر در 2 ارسال )
ارسال: #13
j2me
سلام.
نمی دونم چرا این جا باز نمیشه .در مورد فایل یا rms هم مطلبی داره؟میتونی اگه مطلب داره برام فرستی؟
۱۳-اسفند-۱۳۸۵, ۱۴:۲۸:۰۰
ارسال‌ها
پاسخ
ha_60 آفلاین
بنيانگذار سايت
******

ارسال‌ها: 4,637
موضوع‌ها: 216
تاریخ عضویت: آبان ۱۳۸۳

تشکرها : 560
( 6556 تشکر در 2385 ارسال )
ارسال: #14
 
اضافه كردن قابليت ذخيره كردن داده‌ها به نرم‌افزارهاي MIDlet
MIDP مكانيسمي جهت ذخيره‌سازي ماندگار داده‌ها براي نرم‌افزارهاي JAVA فراهم نموده‌است. اين ساختار ذخيره‌سازي ماندگار را مي‌توان به يك بانك داده مدل ركوردگرا تشبيه كرد. در اين پيوست ما به چگونگي استفاده از RMS براي مديريت و تحليل داده‌ها مي‌پردازيم و در نهايت يك بانك اطلاعاتي نمونه براي تشريح بيشتر مساله مثال خواهيم زد.

سيستم مديريت ركورد J2ME
سيستم مديريت ركورد J2ME يا همان RMS مكانيسمي را فراهم مي‌سازد كه MIDlet ها از طريق آن مي‌توانند داده‌ها را به صورت بلندمدت بايگاني كرده و بعدها بازيابي كنند.J2ME RMS در يك رويكرد ركوردگرا شامل مجموعه‌اي از انباره‌هاي ركوردي مي‌باشد. نماي كلي ارتباط بين J2ME RMS و MIDlet در شكل 1 آمده‌است.
شكل 1. نماي كلي ارتباط بين J2ME RMS و MIDlet


هر انبار ركوردي را مي‌توان به عنوان يك مجموعه از ركوردها درنظر گرفت كه مقادير آنها در طي عمليات مختلف MIDletها ثابت باقي مي‌مانند. MIDlet مسئول اين امر است كه حفظ داده‌ها و يكبارچگي اطلاعات انباره‌هاي ركوردي را در طي عمليات عادي دستگاه نظير خاموش و روشن كردن و يا شارژ دوباره دستگاه و غيره حفظ نمايد.
يك انبار ركوردي بر روي سازه اصلي دستگاه ايجاد مي‌شود، مانند حافظه غيرفرار دستگاه، كه مستقيماً در اختيار‌ ‌MIDlet قرار نمي‌گيرد. كلاسهاي RMS توسط كدها داخلي دستگاه فراخواني كرده و از توابع استاندارد سيستم عامل دستگاه براي انجام عمليات اصلي يك بانك داده استفاده مي‌كنند.
عملكرد انبار ركورد به صورتي است كه هسته‌اي بودن، همزماني و سريال داربودن كليه انباره‌ها را تضمين كرده و از هر تحريفي در داده‌ها در دسترسي‌هاي مختلف جلوگيري مي‌كند. در هر انبار ركورد timestamp ساعت آخرين تغيير ضبط مي‌شود. همچنين انبار ركورد version را هم نگهداري كرده، كه عددي صحيح است كه با هر تغيير افزايش مي‌يابد. Timestamp و version براي همزمان‌سازي داده‌ها مفيد خواهندبود.
وقتي كه يك MIDlet از مسيرهاي مختلفي براي دستيابي به يك انبار ركورد استفاده مي‌كند، ايجاد و مديريت اين دسترسي‌ها برعهدة MIDlet خواهدبود. هرگونه اشتباه در اين ميان به تغييرات ناخواسته در محتواي داده‌ها مي‌انجامد. بهمين نحو اگر دستگاه وظيفه همزمان سازي يك انبار ركورد را انجام دهد، مسئوليت همزمان‌سازي داده‌ها برعهدة دستگاه خواهدبود و سيستم هماهنگ‌سازي دستگاه است كه مسئوليت دارد كه اجازه دسترسي منحصربفرد به انبار ركورد را به MIDlet و موتور همزمان‌سازي دستگاه بدهد.
هر ركورد انبار ركورد شامل آرايه‌اي از بايتها و يك شماره مشخصه يكتاي صحيح(integer) مي‌باشد.
مديريت بانك داده دستگاه
كلاس javax.microedition.rms.RecordStore يك انبار ركورد RMS را ارائه مي‌نمايد. كه دستورات بسياري براي مديريت يك انبار ركورد از قبيل امكان حذف و اضافه و روزآمدكردن ركوردها را در اختيار شما مي‌گذارد.
مديريت انبار ركورد
براي بازكردن يك انبار ركورد دستور openRecordStore() از javax.microedition.rms.RecordStore بايد فراخواني شود. public static RecordStore openRecordStore(string recordStoreName,Boolean createIfNecessary) يك انبار ركورد با نام داده‌شده recordStoreName باز مي‌كند. اگر چنين انبار ركوردي نبود با فراخواني اين تابع مي‌توانيد يك انبار ركورد دلخواه بسازيد.
اگر انبار ركورد موردنظر باز بود، اين دستور يك ارجاع به انبار ركورد مشابه برقرار مي‌سازد.
ليست 1- بازكردن يك انبار ركورد
کد:
RecordStore rs = RecordStore.openRecordStore("MyAppointments",true);

هرگاه تمامي كارها پايان يافت فراخواني closeRecordStore() انبار ركورد داده‌شده را مي‌بندد. وقتي يك انبار ركورد بسته مي‌شود ديگر نمي‌توان بر روي آن عمليات ديگري انجام داد.

ليست 2 – بستن يك انبار ركورد
کد:
Rs.closeRecordStore();

انبار داده مشخص شده را مي‌توان با فراخواني متد deleteRecordStore() حذف كرد.

ليست 3- حذف يك انبار ركورد
کد:
RecordStore.deleteRecordStore("MyAppointments");

اضافه كردن ركوردها
MIDlet با فراخواني متد addRecord() از كلاس javax.microedition.rms.RecordStore يك ركورد جديد به انبار ركورد مي‌افزايد.اين يك عمليات هسته‌اي محدود است كه يك recordId براي ركورد جديد بازگشت مي‌دهد. ركورد قبل از اينكه دستور چيزي را برگشت دهد در يك مكان حافظه ماندگار استقرار مي‌يابد.
public int addRecord(byte data, int offset, int numBytes) يك ركورد كه شامل يك آرايه از بايتها بنام data با offset به عنوان يك ايندكس رشته‌اي و طول آن numBuytes مي‌باشد.

ليست 4- اضافه كردن ركورد
کد:
String appt = "new record";
byte bytes = appt.getBytes();
rs.addRecord(bytes,0,bytes.length);

بروز كردن ركوردها
بروزكردن يك ركورد خاص شامل فراخواني آن ركورد و نوشتن اطلاعات جديد در آن است.
public int getRecord(int recorded,byte buffer,int offset) مقدار داده موجود در يك ركورد مشخص را كه با آرايه بايتي buffer نمايش داده مي‌شود را برمي‌گرداند. public byte getRecord(int recordId) هم يك كپي از داده‌هاي موجود در ركورد recorded را بازگشت مي‌دهد. public void setRecord(int recorded,byte newData, int offset, int numBytes) اطلاعات جديد را كه در يك جريان بايتي newData ذخيره شده وآدرس بايت اول آن offset و طول آن numBuytes مي‌باشد را به ركورد موجود در آدرس recorded اختصاص مي‌دهد.
ليست 5-بروزكردن ركورد
کد:
String newappt = "update record";
Byte data = newappt.getBytes();
Rs.setRecord(1, data, 0, data.length());

حذف ركورد
MIDlet از متد deleteRecord() براي حذف يك ركورد از انباره ركورد استفاده مي‌كند.
public void deleteRecord(int RecordId) ركورد مشخص شده با شماره RecordId را حذف مي‌كند. RecordId حذف شده ديگر نمي‌تواند مورد استفاده قراربگيرد.
ليست 6-حذف يك ركورد
کد:
Rs.deleteRecord(1);

تفسير داده‌ها
J2ME API رابطهاي خاصي جهت تفسير و تعبير ركوردهاي موجود در يك انباره ركورد دارد. اين فرآيند شامل مقايسة ركوردها جهت تعيين محل نسبي آنها به يكديگر مي‌باشد. همچنين مي‌توان محتواي ركوردها برحسب شرايط معيني مورد جستجو و فيلتر قرارداد.

مقايسه ركوردها
MIDlet از رابط RecordComparator و دستور compare(byte rec1,byte rec2) براي مقايسة دو ركورد منتخب استفاده مي‌كند. مقدار برگشتي اين دستور نسبت اين دو ركورد را به يكديگر نشان مي‌دهد.
ليست 7-مقايسه ركوردها و تعيين نسبت آنها به يكديگر
کد:
Int compare (byte b1, byte b2)
{
String s1 = new String(b1);
String s2 = new String(b2);
If (s1.compareTo(s2) > 0)
Return RecordComparator.FOLLOWS;
Else if (s1.compareTo(s2) == 0)
Return RecordComparator.EQUIVALENT;
Else
Return RecordComparator.PRECEDES;
}

شمارش ركوردها
رابط RecordEnumeration مسئول شمارش ركوردها در يك انبارة ركورد مي‌باشد.اين رابط به طور منطقي توالي و ترتيب recordIdهاي ركوردهاي يك انبارة ركورد را نگهداري مي‌كند. شمارشگر همة ركوردها (يا مجموعة كوچكي از آنها را كه مورد فيلتر واقع شده‌اند) را با توجه به يك مقايسه‌گر، بازشماري مي‌كند. در صورت عدم تعريف هيچ فيلتر و مقايسه‌گري شمارش كل ركوردها بدون درنظر گرفتن هيچ شرايط خاصي انجام مي‌شود.

ليست 8-شمارش ركوردها
کد:
RecordEnumeration re = rs.enumerateRecords(null, null, false);
If (re.hasNextElement())
Byte nextRec = re.nextRecord();

فيلتركردن ركوردها
MIDlet از رابط RecordFilter براي فيلتر كردن اينكه يك ركورد شرايط از پيش تعيين شده‌اي را دارا مي‌باشد يا خير استفاده مي‌كند. نرم‌افزار از متد match() رابط RecordFilter براي انتخاب ركوردهايي كه رابط RecordEnumeration بازشماري كرده‌است، استفاده مي‌كند.
ليست 9-فيلتركردن ركوردها
کد:
Public boolean matches(byte candidate)
{
String s1 = new String(candidate);
If (s1.equals("XX"))
Returns true;
Else
Returns false;
}
کش رفته شده از کتاب خودم :wink: ولی کار برادر آیت

هادی امین زاده
دیدن چیزی که همه می بینند هنر نیست
بانک اطلاعات صنایع ایران.
۱۳-اسفند-۱۳۸۵, ۲۳:۵۰:۴۲
وب سایت ارسال‌ها
پاسخ
sara_maedeh آفلاین
كاربر دو ستاره
**

ارسال‌ها: 60
موضوع‌ها: 9
تاریخ عضویت: بهمن ۱۳۸۵

تشکرها : 0
( 5 تشکر در 2 ارسال )
ارسال: #15
j2me
سلام.
خیلی ممنون از مطالبتون.
ولی این که کتاب خودتونه.گفته بودم که من کتابتونو دارم.
من گفتم اگه میشه صفحات مربوط به rms رو برام تو word بریزید وبرام بفرستید.لطفا!!
اون سایت شهرهای دیگه هم باز می شه ولی اینجا(گرگان) باز نمی شه.

يک سوال هم اينکه براي دسترسي به محتويات یک record باید چی کار کنم؟
میخوام محتویات رکوردها که از نوع string هستن رو با محتویات textfield که string هست رو مقایسه کنم.
با تشکر. :?:
۱۴-اسفند-۱۳۸۵, ۱۱:۲۳:۳۹
ارسال‌ها
پاسخ
ha_60 آفلاین
بنيانگذار سايت
******

ارسال‌ها: 4,637
موضوع‌ها: 216
تاریخ عضویت: آبان ۱۳۸۳

تشکرها : 560
( 6556 تشکر در 2385 ارسال )
ارسال: #16
 
صفحات کجا رو همون که آدرس شو پاک کردی؟ خوب از کجا آدرسشو بیارم Amaze
و برای مقایسه من زیاد کار نکردم اما تا اونجا که یادم می یومد یا باید string رو به بایت تبدیل کنی بایت ها رو مقایسه کنی یا اینکه از خود رکورد وقتی می خونی تبدیلش کنی به string و بعد string رو مقایسه کنی (فکر کنم کود هردوش باشه اینجا البته تیکه تیکه)

هادی امین زاده
دیدن چیزی که همه می بینند هنر نیست
بانک اطلاعات صنایع ایران.
۱۵-اسفند-۱۳۸۵, ۰۹:۳۲:۱۵
وب سایت ارسال‌ها
پاسخ
sara_maedeh آفلاین
كاربر دو ستاره
**

ارسال‌ها: 60
موضوع‌ها: 9
تاریخ عضویت: بهمن ۱۳۸۵

تشکرها : 0
( 5 تشکر در 2 ارسال )
ارسال: #17
j2me
با سلام.
یه مشکلی که داریم اینه که معنی کلمات رو تو گوشی فارسی نشون نمی ده و بصورت یکسری علامتها نشون می ده.البته گوشی فارسی ساز نداره.اگه فارسی ساز داشته باشه درست نشون میده؟؟؟؟؟؟ یا باید در خود j2me تنظیماتی انجام بشه؟؟؟؟که البته دومی بهتره چون ممکنه گوشی ای فارسی ساز نداشته باشه.لطفا راهنماییمون کنید.
۱۶-اسفند-۱۳۸۵, ۱۷:۲۸:۳۹
ارسال‌ها
پاسخ
ha_60 آفلاین
بنيانگذار سايت
******

ارسال‌ها: 4,637
موضوع‌ها: 216
تاریخ عضویت: آبان ۱۳۸۳

تشکرها : 560
( 6556 تشکر در 2385 ارسال )
ارسال: #18
 
اول ببین گوشی یونی کد رو پشتیبانی می کنه یا نه فارسی ساز ها برای تایپ فارسی هستند با ارسال یه sms فارسی می تونی بفهمی گوشیت می تونه فارسی نشون بده یا نه اگه نشون میده بقیه جا ها هم مشکلی نداره البته من خودم با uni code ها کار نکردم
http://www.webpronews.com/topnews/2004/0...nd-unicode
http://java.sun.com/j2se/1.3/docs/guide/...g.doc.html

هادی امین زاده
دیدن چیزی که همه می بینند هنر نیست
بانک اطلاعات صنایع ایران.
۱۷-اسفند-۱۳۸۵, ۰۹:۰۱:۴۴
وب سایت ارسال‌ها
پاسخ
sara_maedeh آفلاین
كاربر دو ستاره
**

ارسال‌ها: 60
موضوع‌ها: 9
تاریخ عضویت: بهمن ۱۳۸۵

تشکرها : 0
( 5 تشکر در 2 ارسال )
ارسال: #19
j2me
سلام.
در مورد unicode ها من از اون سایت چیزی متوجه نشدم :roll: .یعنی یه مسیری می ده ولی کار نمی کنه.اگه مطلب دیگه ای دارید کمکم کنید.
یه سوال دیگه هم دارم.برای رنگ کردن background فرم ویا قرار دادن image در background باید چی کار کنم؟؟ :?:
۱۷-اسفند-۱۳۸۵, ۱۸:۵۰:۳۴
ارسال‌ها
پاسخ
ha_60 آفلاین
بنيانگذار سايت
******

ارسال‌ها: 4,637
موضوع‌ها: 216
تاریخ عضویت: آبان ۱۳۸۳

تشکرها : 560
( 6556 تشکر در 2385 ارسال )
ارسال: #20
 
http://www.j2mepolish.org/documentation.html
برای بک گراند و رنگ و اینا اینم سایت اصلی
http://www.j2mepolish.org/

هادی امین زاده
دیدن چیزی که همه می بینند هنر نیست
بانک اطلاعات صنایع ایران.
۱۸-اسفند-۱۳۸۵, ۱۰:۲۲:۵۹
وب سایت ارسال‌ها
پاسخ
sara_maedeh آفلاین
كاربر دو ستاره
**

ارسال‌ها: 60
موضوع‌ها: 9
تاریخ عضویت: بهمن ۱۳۸۵

تشکرها : 0
( 5 تشکر در 2 ارسال )
ارسال: #21
j2me
سلام.
مهندس به دادمون برس. روی موبایل نمی تونیم فارسی نشون بدیم.استفاده از unicode رو بلد نیستیم.هرجا می خونیم چیزی دستمون نمی یاد.حسابی موندیم چی کار کنیم؟؟
لطفا اگه می تونین کمکمون کنید واقعا نمی دونیم چی کار کنیم کسی هم چیزی نمی دونه.منتظریم :cry:
۲۲-اسفند-۱۳۸۵, ۰۰:۰۸:۲۱
ارسال‌ها
پاسخ
ha_60 آفلاین
بنيانگذار سايت
******

ارسال‌ها: 4,637
موضوع‌ها: 216
تاریخ عضویت: آبان ۱۳۸۳

تشکرها : 560
( 6556 تشکر در 2385 ارسال )
ارسال: #22
 
مگه این کار نمی کنه؟
کد:
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;

public class SimpleUnicodeTest extends MIDlet {
Display display;
Form form = null;
StringItem msg = null;

public SimpleUnicodeTest() {
}

public void startApp() {
display = Display.getDisplay(this);
msg = new StringItem("'Hello World' in Japanese","u3053u3093u306Bu3061u306Fu4E16u754C");
form = new Form("Unicode Test");
form.append(msg);
display.setCurrent(form);
}

public void pauseApp() {}
public void destroyApp(boolean unconditional) {}
}
من رو این سیستم 64 بیتیم هیچی نصب نمی شه که بتونم تست کنم ولی گد ها به نظر سالم می یاد و باید کار کنه

هادی امین زاده
دیدن چیزی که همه می بینند هنر نیست
بانک اطلاعات صنایع ایران.
۲۲-اسفند-۱۳۸۵, ۱۰:۳۳:۵۷
وب سایت ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  j2me , rms sara_maedeh 4 4,377 ۲۰-اسفند-۱۳۸۹, ۱۸:۰۴:۵۲
آخرین ارسال: tecnocomputer
  آموزش فارسی و تصویری j2me handinux 4 5,558 ۱۹-تير-۱۳۸۸, ۲۲:۱۷:۰۲
آخرین ارسال: mogre12
  menu در j2me irucom 3 2,805 ۱۰-آذر-۱۳۸۶, ۱۱:۲۱:۳۷
آخرین ارسال: ha_60
  لطفا اگر کسی می دونه جواب بده(j2me ) irucom 3 2,635 ۰۶-آذر-۱۳۸۶, ۰۹:۱۲:۲۱
آخرین ارسال: ha_60
  آیا برنامه هایی که با J2ME مینویسیم برروی N70 کار می کند: justn70me 5 3,042 ۱۳-مهر-۱۳۸۶, ۰۱:۵۴:۰۷
آخرین ارسال: newdesign
  سوال راجع به طراحی بانک اطلاعاتی موبایل با زبان j2me atghorbani 7 5,087 ۲۳-شهریور-۱۳۸۶, ۱۶:۴۸:۲۳
آخرین ارسال: leila5552
  error توی کدهای j2me کتاب leila_mybb1.2_import13514 13 5,499 ۱۶-شهریور-۱۳۸۶, ۱۱:۴۹:۵۸
آخرین ارسال: ha_60

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 27 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS