| rms و نحوه جابجايي اون؟ | |
|
|
نويسنده | پيام |
---|
haghi.mahdi
تعداد پستها : 25 Registration date : 2008-08-03
| عنوان: rms و نحوه جابجايي اون؟ الخميس أغسطس 14, 2008 9:16 am | |
| سلام دوستان من چند تا سوال راجه به rms داشتم 1-فایلی که netbeans برای اون میسازه چه پسوندی داره ؟ 2-می تونم فایل رو بردارم و توی یک پروژه دیگه کپی کنم ؟اگه می تونم از کجای پروژه بردارمش و کجای یک پروژه دیگه بریزم 3-من یک rms ساختم به اسم rms1 در متدaddrecordچند داده توش ذخیره کردم وقتی از برنامه خارج میشم دوباره برنامه رو run میکنم بدون این که به متد addrecord دست بزنم متد readrecord رو صدا میزنم تا از همون rms1 بخونه توجه کنید که من یک rms دیگه نمیسازم ولی نتیجه اینه که هیچی داده توش نیست .چه طور میشه کاری کرد که داده ها در rms ثابت باقی بمانند و پاک نشوند. 4-چه طور میشه از rms فارسی بخونیم ؟ ممنون از همتون | |
|
| |
haamoon
تعداد پستها : 308 Registration date : 2008-02-07
| عنوان: رد: rms و نحوه جابجايي اون؟ الخميس أغسطس 14, 2008 10:31 am | |
| 1- نمی دونم که netbeans چنین کاری می کنه یا نه ولی خیلی بعید هست.
2- وقتی برنامه برای اولین بار اجرا می شه شما چیزی تو RMS نداری و باید اولین بار دیتابیس خودت رو توش قرار بدی.
3- ممکن emulator اطلاعات رو برای دفعه ی بعد نگه نداره. توجه کن که اگر یک MIDlet تو RMS می نویسه فقط خودش می تونه بخونه پس عمل save و load رو حتما یک MIDlet باید انجام بده. برنامه ت رو رو گوشی تست کن.
4-rms فقط byte[] رو ذخیره و بازیابی می کنه. شما اگر بخوای فارسی ذخیره کنی یا انگلیسی یا حتی تصویر فرقی نمی کنه. فقط باید یک متد برای تبدیل کلاس به byte[] و یک متد هم برای تبدیل byte[] به کلاس مورد نظر داشته باشی. برای کلاس String داریم. String.getBytes(); new String( byte[] byteArray ); a | |
|
| |
haghi.mahdi
تعداد پستها : 25 Registration date : 2008-08-03
| عنوان: رد: rms و نحوه جابجايي اون؟ الجمعة أغسطس 15, 2008 1:54 am | |
| سلام 1-قضیه خیلی پیچیده تره.من داده رو توrecordstore ذخیره میکنم . وحتی وقتی توسط یک دکمه متد readrecord رو صدا می زنم داده رو نشان میده.ولی وقتی دفعه بعد برنامه رو run میکنم متد add رو صدا نمیزنم ولی متد readrecord رو صدا میزنم اصلا اون rms قبلی رو نمی شناسه.اگه creat رو true کنم یکی میسازه ولی توش هیچی داده نیست. 2-منظور من همون بایتیه که از فایل می خونم .داده توی فایل فارسی است.من به صورت بایت میخونم موقع نمایش اون رو انگلیسی نشون میده.میخوام اون بایت رو به فارسی تبدیل کنم.روشی هست؟ | |
|
| |
haamoon
تعداد پستها : 308 Registration date : 2008-02-07
| عنوان: رد: rms و نحوه جابجايي اون؟ الجمعة أغسطس 15, 2008 3:37 am | |
| 1-قضیه اصلا پیچیده نیست. تو j2me.blogfa.com پست Elearning جلسه ی دوم رو ببین تو قسمت source یک مثال گذاشتم(example4) که یک متن رو تو RecordStrore ذخیره و بازیابی می کنه، تست شده و کار هم می کنه و ربطی هم به فارسی یا انگلیسی بودن متن نداره امتحان کن. و دقت کن اگر تنظیمات emulator درست نباشه ممکن مقادیر RMS رو برای دفعه ی بعد نگه نداره رو گوشی واقعی تست کن.
2-شما برای اینکه یک متن رو بازیابی کنی باید بدونی با چه فرمتی ذخیره شده اگر خودت این فایل رو ساخته باشی و با همون روشی که گفتم می تونی بازیابیش کنی با همون روشی که گفتم ولی اگر نمی دونی چطور ساخته شده مثالا با Map کردن هر یونی کد هر کارکتر فارسی به یک بایت( برای کم کردن حجم) تا اون Map رو نداشته باشی نمی تونی و چون انگلیسی می خونی احتمالا چنین کاری شده. اگر مشکلت حل نشد لطفا فایل متنی و فرمتی که ذخیره کردی رو بفرست. | |
|
| |
haghi.mahdi
تعداد پستها : 25 Registration date : 2008-08-03
| عنوان: رد: rms و نحوه جابجايي اون؟ الجمعة أغسطس 15, 2008 4:01 pm | |
| سلام ممنون از مثالاتون استفاده کردم . و متوجه مشکل فارسی خوندن شدم 1-من برای read از recordstore از روش شما استفاده کردم من الان کد متد add رو میذارم هم متد read ولی یک مشکل هست اونم اینه که add کامل انجام میگیره ولی در read وقتی میخواد از inputstream سورس بگیره null pointer exception میده نتیجه میگیرم اسم سورس رو نمیشناسه 2-نکته دیگه این که شما در مثالتون اسم فایلی که برای add میساختین با اسمی که با inputstream میگرفتین فرق داشت من کد متد add و read رو گذاشتم اسم هر دو رو یکی گذاشتم یعنی مشکل از اینه؟اگه هست پس باید اسم هون رو چی بنویسم؟ - كد:
-
private String readrecords() { byte[] u; String w = ""; try { InputStream readMe = getClass().getResourceAsStream("/Record1.dat"); int size = readMe.available(); u = new byte[size]; readMe.read(u, 0, 3); w = new String(u, 5, 10); } catch (IOException ex) { ex.printStackTrace(); } return w; } private void addrecord(){ byte b[]; try { rs = RecordStore.openRecordStore("Record1",true); b=new byte[soore.length()]; b=soore.getBytes(); rs.addRecord(b, 0, b.length); rs.closeRecordStore(); } catch (RecordStoreException ex) { ex.printStackTrace(); } System.out.println("i created it"); } ممنون میشم راهنمایی کنید | |
|
| |
haamoon
تعداد پستها : 308 Registration date : 2008-02-07
| عنوان: رد: rms و نحوه جابجايي اون؟ السبت أغسطس 16, 2008 4:28 am | |
| خوب فایل Record1.dat رو کجا گذاشتی؟ تو eclipse باید تو فولدر res باشه ولی تو netbeans باید تو فولدر src کنار فایل سورس ها بذاریش. این کار رو کردی؟ | |
|
| |
haghi.mahdi
تعداد پستها : 25 Registration date : 2008-08-03
| عنوان: رد: rms و نحوه جابجايي اون؟ السبت أغسطس 16, 2008 8:49 am | |
| سلام نه این کارو نکردم این فایل کجا ذخیره میشه که برشدارم پسوندی که ذخیره میشه همین dat? | |
|
| |
haamoon
تعداد پستها : 308 Registration date : 2008-02-07
| عنوان: رد: rms و نحوه جابجايي اون؟ السبت أغسطس 16, 2008 9:07 am | |
| فکر کنم شما یه چیزهایی رو با هم قاطی کردی! ببین getResourceAsStream یک تابع است که resource های پروژه تو بصورت InputStream در اختیارت قرار می ده که بخونی و این resource ها مطالبی هستند که خودت باید تو پروژه ت قرار داده باشی که تو فایل jar همراه بقیه ی فایل هات زیپ می شه. می تونه یک عکس باشه یا یک فایل حالا انکه شما انتظار داری خودش یه فایلی به اسم Record1.dat اون تو بذاره اینجوری نیست شما ممکن یک دیتا بیس بسازی و بصورت فایل تو پروژه ت بذاری و اولین بار که برنامه اجرا می شه اون رو تو RecordStore بریزی. کسی این لایبرری دیتابیس رو ننوشته(جز persLite و OpenBaseMovil!) پس باید خودت یک فرمت برای نوشتن و خوندن تو دیتابیس طراحی کنی و کد لایبرری DataBase رو خودت بزنی. | |
|
| |
haghi.mahdi
تعداد پستها : 25 Registration date : 2008-08-03
| عنوان: رد: rms و نحوه جابجايي اون؟ السبت أغسطس 16, 2008 11:50 am | |
| سلام دوست عزیز کاملا متوجه شدم .من این کار رو کردم و جواب داد. اما به خاطر emulator داده تو db ذخیره نمیشه یعنی وقتی بازش میکنم خالییه گفتید باید تو خود موبایل تست کنم .و من میخوام از خود برنامه این کار رو بکنم یعنی وقتی برنامه رو در محیط netbeans run میکنم به جای emulator برنامه تو دستگاه موبایل بالا بیاداصلا این کار امکانپذیره؟ اگه میشه چه طور؟ | |
|
| |
haamoon
تعداد پستها : 308 Registration date : 2008-02-07
| عنوان: رد: rms و نحوه جابجايي اون؟ السبت أغسطس 16, 2008 12:08 pm | |
| - haghi.mahdi نوشته است:
- سلام دوست عزیز کاملا متوجه شدم .من این کار رو کردم و جواب داد.
اما به خاطر emulator داده تو db ذخیره نمیشه یعنی وقتی بازش میکنم خالییه گفتید باید تو خود موبایل تست کنم .و من میخوام از خود برنامه این کار رو بکنم یعنی وقتی برنامه رو در محیط netbeans run میکنم به جای emulator برنامه تو دستگاه موبایل بالا بیاداصلا این کار امکانپذیره؟ اگه میشه چه طور؟ آره می شه یه راهش اینه که فایل jar که تولید می شه رو ببری رو گوشی نصب کنی و راه حل دوم باید بری WTK(wireless toolkit)1 مخصوص گوشی خودت رو بگیری(که برای sonyErcsson و nokia هست.) بعد یه چیزی داره بنام on device debugging که با USB به گوشی وصل می شه و هر System.out.println و Exception که می ده رو برات می نویسه. ولی دردسرش زیاد هست، راه حل اول رو پیشنهاد می کنم. | |
|
| |
Admin Admin
تعداد پستها : 455 Location : Linux Registration date : 2007-08-28
| عنوان: پاسخ الأحد أغسطس 17, 2008 1:26 am | |
| در تجربه من در زمینه RMS داده ها حتی در موقع اجرا در شبیه ساز هم پایدار بود و در دفعات بعدی قابل بازیابی بود.شما چنین چیزی رو تجربه نکردید؟ | |
|
| |
haamoon
تعداد پستها : 308 Registration date : 2008-02-07
| عنوان: رد: rms و نحوه جابجايي اون؟ الأحد أغسطس 17, 2008 8:57 am | |
| - Admin نوشته است:
- در تجربه من در زمینه RMS داده ها حتی در موقع اجرا در شبیه ساز هم پایدار بود و در دفعات بعدی قابل بازیابی بود.شما چنین چیزی رو تجربه نکردید؟
من به هر دو حالت بر خوردم نمی دونم چرا خراب شد و بعد درست کار می کرد ولی اگر رو گوشی جواب داد حتما درست هست. | |
|
| |
| rms و نحوه جابجايي اون؟ | |
|