| در مورد ذخيره فايل متني | |
|
|
|
نويسنده | پيام |
---|
reza.com0511
تعداد پستها : 40 Location : mashad Registration date : 2008-08-31
| عنوان: در مورد ذخيره فايل متني الثلاثاء سبتمبر 09, 2008 5:04 am | |
| دوباره سلام . ببخشيد من همش سوال ميپرسم. ان شاءالله با كمك شما حرفه اي كه بشم سوالات بقيه رو هم جواب ميدم. من ميخوام محتويات يك text box رو كه كاربر وارد ميكنه بصورت يك فايل txt در گوشي (ترجيحا سوني اريكسون) دخيره كنم كه بعدا توسط خود گوشي قابل نمايش باشه. من مطالبي در مورد استفاده از فايل و نوشتن در فايل خوندم اما استفاده عمليش رو بلد نيستم اگر تكه كدي باشه كه كار من رو راه بندازه ممنون ميشم. | |
|
| |
00110
تعداد پستها : 123 Location : Tab Registration date : 2008-05-03
| عنوان: !!! الثلاثاء سبتمبر 09, 2008 7:20 am | |
| - reza.com0511 نوشته است:
- دوباره سلام . ببخشيد من همش سوال ميپرسم. ان شاءالله با كمك شما حرفه اي كه بشم سوالات بقيه رو هم جواب ميدم.
من ميخوام محتويات يك text box رو كه كاربر وارد ميكنه بصورت يك فايل txt در گوشي (ترجيحا سوني اريكسون) دخيره كنم كه بعدا توسط خود گوشي قابل نمايش باشه. من مطالبي در مورد استفاده از فايل و نوشتن در فايل خوندم اما استفاده عمليش رو بلد نيستم اگر تكه كدي باشه كه كار من رو راه بندازه ممنون ميشم. به این یه نگاهی بنداز : - كد:
-
private void saveFile(String path, String name) { try { String url = path + name; String string = textbox.getString(); byte data[] = string.getBytes(); FileConnection fconn = (FileConnection)Connector.open(url, Connector.READ_WRITE); if (!fconn.exists()) { fconn.create(); } OutputStream ops = fconn.openOutputStream(); ops.write(data); ops.close(); fconn.close(); } catch (IOException ioe) { System.out.println("IOException: "+ioe.getMessage()); } catch (SecurityException se) { System.out.println("Security exception:" + se.getMessage()); } } | |
|
| |
haamoon
تعداد پستها : 308 Registration date : 2008-02-07
| عنوان: رد: در مورد ذخيره فايل متني الثلاثاء سبتمبر 09, 2008 10:39 am | |
| سلام به همه تابع String.getBytes هر کارکتر رو به یک بایت map می کنه که همون اسکی کدش هست ولی اگر کارکتر شما اسکی کد نداشته باشه کارکتر ? برمی گردونه، اگر حروف فارسی رو می خواین ذخیره کنید از تابع String.toCharArray استفاده کنید. | |
|
| |
Admin Admin
تعداد پستها : 455 Location : Linux Registration date : 2007-08-28
| عنوان: پاسخ الثلاثاء سبتمبر 09, 2008 10:49 am | |
| - haamoon نوشته است:
- سلام به همه تابع String.getBytes هر کارکتر رو به یک بایت map می کنه که همون اسکی کدش هست ولی اگر کارکتر شما اسکی کد نداشته باشه کارکتر ? برمی گردونه، اگر حروف فارسی رو می خواین ذخیره کنید از تابع String.toCharArray استفاده کنید.
امیر یک مثال می زنی؟ | |
|
| |
reza.com0511
تعداد پستها : 40 Location : mashad Registration date : 2008-08-31
| عنوان: رد: در مورد ذخيره فايل متني الثلاثاء سبتمبر 09, 2008 1:38 pm | |
| - haamoon نوشته است:
- سلام به همه تابع String.getBytes هر کارکتر رو به یک بایت map می کنه که همون اسکی کدش هست ولی اگر کارکتر شما اسکی کد نداشته باشه کارکتر ? برمی گردونه، اگر حروف فارسی رو می خواین ذخیره کنید از تابع String.toCharArray استفاده کنید.
سلام. آقاي شبان ميشه يه كم بيشتر توضيح بدين.مثلا چطور ميشه كه كاركتر اسكي كد نداشته باشه؟ در مورد كد بالا كه 0111 زحمتشو كشيده نظرتون چيه؟ همينو كار كنم؟ | |
|
| |
haamoon
تعداد پستها : 308 Registration date : 2008-02-07
| عنوان: رد: در مورد ذخيره فايل متني الثلاثاء سبتمبر 09, 2008 2:16 pm | |
| - Admin نوشته است:
- haamoon نوشته است:
- سلام به همه تابع String.getBytes هر کارکتر رو به یک بایت map می کنه که همون اسکی کدش هست ولی اگر کارکتر شما اسکی کد نداشته باشه کارکتر ? برمی گردونه، اگر حروف فارسی رو می خواین ذخیره کنید از تابع String.toCharArray استفاده کنید.
امیر یک مثال می زنی؟ خوب شما این کار رو بکن: String amir = "سلام"; byte[] amirBytes = amir.getBytes(); for(int i = 0;i < amirBytes.lenght;i++) { System.out.println((int) amirBytes[i]); } می بینی همشون برابر یک چیز هستند و اونم اسکی کد ؟ است. | |
|
| |
haamoon
تعداد پستها : 308 Registration date : 2008-02-07
| عنوان: رد: در مورد ذخيره فايل متني الثلاثاء سبتمبر 09, 2008 2:19 pm | |
| - reza.com0511 نوشته است:
- haamoon نوشته است:
- سلام به همه تابع String.getBytes هر کارکتر رو به یک بایت map می کنه که همون اسکی کدش هست ولی اگر کارکتر شما اسکی کد نداشته باشه کارکتر ? برمی گردونه، اگر حروف فارسی رو می خواین ذخیره کنید از تابع String.toCharArray استفاده کنید.
سلام. آقاي شبان ميشه يه كم بيشتر توضيح بدين.مثلا چطور ميشه كه كاركتر اسكي كد نداشته باشه؟ در مورد كد بالا كه 0111 زحمتشو كشيده نظرتون چيه؟ همينو كار كنم؟ کارکترهای اسکی 128 تا هستند از قدیم ندیم بودن تو هفت تا بیت جا می شن و... یونی کدشون هم برابر کد اسکی شون هست فقط بایت اولشون 0 هست یعنی تو این قالب 0\u00xx. خوب تو این کد هم مشکلی که گفتم پیش می یاد یعنی کارکتر غیر اسکی رو نمی تونی ذخیره کنی. از تابع DataOutputStream.writeUTF استفاده کن برای نوشتن توی فایل و برای خوندن DataInputStream.readUTF و خوبیش هم اینه که فایلی که ذخیره کردی رو editor ها هم می تونن بخونن. | |
|
| |
00110
تعداد پستها : 123 Location : Tab Registration date : 2008-05-03
| عنوان: !!! الأربعاء سبتمبر 10, 2008 7:06 am | |
| - reza.com0511 نوشته است:
- haamoon نوشته است:
- سلام به همه تابع String.getBytes هر کارکتر رو به یک بایت map می کنه که همون اسکی کدش هست ولی اگر کارکتر شما اسکی کد نداشته باشه کارکتر ? برمی گردونه، اگر حروف فارسی رو می خواین ذخیره کنید از تابع String.toCharArray استفاده کنید.
سلام. آقاي شبان ميشه يه كم بيشتر توضيح بدين.مثلا چطور ميشه كه كاركتر اسكي كد نداشته باشه؟ در مورد كد بالا كه 0111 زحمتشو كشيده نظرتون چيه؟ همينو كار كنم؟ همونطور که امیر اقا توضیح دادن کارکترهای اسکی 128 تا هستند یعنی 1 بایت ولی با پیشرفت بشر چون می خواسته کاراکتر های بیشتری رو نمایش بده اومده Unicode رو در اورده که 2 بایت هست حالا ISO هم هست که 4 بایت است و مورد استفاده نیست ... در ضمن اسم من اینهمه 1 داره ؟؟؟ امیر اقا به این یه نگاهی بنداز و رخصت بده این دوستمون ازش استفاده کنه ... ؟؟؟ - كد:
-
private void saveFile(String path, String name) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); DataOutputStream dos= new DataOutputStream(baos); try { String url = path + name; String string = textbox.getString(); byte data[] = string.getBytes(); FileConnection fconn = (FileConnection)Connector.open(url, Connector.READ_WRITE); if (!fconn.exists()) { fconn.create(); } dos = fconn.openDataOutputStream(); for(int i=0; i<data.length;i++) { dos.writeUTF(data[i]); } dos.close(); fconn.close(); } catch (IOException ioe) { } } | |
|
| |
haamoon
تعداد پستها : 308 Registration date : 2008-02-07
| عنوان: رد: در مورد ذخيره فايل متني الأربعاء سبتمبر 10, 2008 1:16 pm | |
| خب این هنوز هم مشکل داره! 1- همون طور که گفتم String.getBytes() به جای کارکترهای غیر اسکی ? برمی گردونه و دیتای شما همینجا از بین می ره، پس اصلا از این تابع استفاده نکنید. 2- و تابع DataOutputStream.writeUTF اصلا آرگومان byte[] نداره! آرگومانش String هست: DataOutputStream.writeUTF(String string)
خوب کافی هست که متغییر string رو مستقیما با این تابع تو فایل بنوسیم، 00110 جان اگر درستش کنی و کدش رو برامون بذاری خیلی گلی. | |
|
| |
reza.com0511
تعداد پستها : 40 Location : mashad Registration date : 2008-08-31
| عنوان: رد: در مورد ذخيره فايل متني الأربعاء سبتمبر 10, 2008 3:39 pm | |
| سلام .ممنون بچه ها. من با كد بالا خيلي ور رفتم .فقط توي ست كردن اون url وگرفتن نام مشكل دارم. يعني بايد يك patch پيشفرض خودم بهش بدم؟ اگر آره !براي سوني اريكسون ها چطوري مسير بدم؟ اگر ميشه راهنماييم كنيد. اگر كد رو هم اصلاح كرديد بي زحمت بزاريد تا بچه ها استفاده كنن.ممنون | |
|
| |
haamoon
تعداد پستها : 308 Registration date : 2008-02-07
| عنوان: رد: در مورد ذخيره فايل متني الخميس سبتمبر 11, 2008 2:21 am | |
| - reza.com0511 نوشته است:
- سلام .ممنون بچه ها. من با كد بالا خيلي ور رفتم .فقط توي ست كردن اون url وگرفتن نام مشكل دارم. يعني بايد يك patch پيشفرض خودم بهش بدم؟ اگر آره !براي سوني اريكسون ها چطوري مسير بدم؟ اگر ميشه راهنماييم كنيد. اگر كد رو هم اصلاح كرديد بي زحمت بزاريد تا بچه ها استفاده كنن.ممنون
C:\other خوبه. | |
|
| |
reza.com0511
تعداد پستها : 40 Location : mashad Registration date : 2008-08-31
| عنوان: رد: در مورد ذخيره فايل متني الخميس سبتمبر 11, 2008 4:01 pm | |
| - haamoon نوشته است:
- reza.com0511 نوشته است:
- سلام .ممنون بچه ها. من با كد بالا خيلي ور رفتم .فقط توي ست كردن اون url وگرفتن نام مشكل دارم. يعني بايد يك patch پيشفرض خودم بهش بدم؟ اگر آره !براي سوني اريكسون ها چطوري مسير بدم؟ اگر ميشه راهنماييم كنيد. اگر كد رو هم اصلاح كرديد بي زحمت بزاريد تا بچه ها استفاده كنن.ممنون
C:\other خوبه. سلام.ببخشيد آقا امير رضا يعني من به جاي url فقط بنويسم c:\other كافيه؟ اسم فايل رو لازم نيست در ادامش بنويسم؟ و اگر من هربار بخوام توي گوشي با اون برنامه يك فايل txt رو ذخيره كنم بدون اسم ذخيره ميشه؟ | |
|
| |
haamoon
تعداد پستها : 308 Registration date : 2008-02-07
| عنوان: رد: در مورد ذخيره فايل متني الخميس سبتمبر 11, 2008 7:07 pm | |
| file://C:/other/name.txt خوب تره. | |
|
| |
prince-of-persia
تعداد پستها : 70 Registration date : 2008-05-26
| عنوان: رد: در مورد ذخيره فايل متني السبت سبتمبر 13, 2008 12:10 am | |
| خوب برای record store چیکار کنیم اون فقط byte[] میگیره.
یعنی باید رشته یونی کد رو به بایت تبدیل کنیم. اینو چه کنیم ؟ | |
|
| |
haamoon
تعداد پستها : 308 Registration date : 2008-02-07
| عنوان: رد: در مورد ذخيره فايل متني السبت سبتمبر 13, 2008 6:04 am | |
| - prince-of-persia نوشته است:
- خوب برای record store چیکار کنیم اون فقط byte[] میگیره.
یعنی باید رشته یونی کد رو به بایت تبدیل کنیم. اینو چه کنیم ؟ خوب یک راهش اینه که از ByteArrayOutputStream برای ساختن byte[] استفاده کنی: ByteArrayOutputStream output = new ByteArrayOutputStream(); DataOutputStream dataOut = DataOutputStream(output); dataOut.writeUTF("سلام"(; byte[] putMeInRMS = output.toByteArray(); و برای خوندن این دیتا: ByteArrayInputStream input = ByteArrayInputStream(readDataFromRMS); DataInputStream inputData = new DataInputStream(input); String myString = inputData.readUTF(); راه دوم هم اینه که از string مقدار char[] رو بگیری و حالا یک تابع بنویسی که هر char رو تبدیل به 2 تا بایت بکنه و بعد تو RMS ذخیره کنیش. برای خوندن هم یک تابع بنویش که هر 2 بایت رو بکنه یک char و از روی char[] که می سازی یک string بساز. | |
|
| |
prince-of-persia
تعداد پستها : 70 Registration date : 2008-05-26
| عنوان: رد: در مورد ذخيره فايل متني السبت سبتمبر 13, 2008 8:36 am | |
| ممنون haamoon جان مشکلم حل شد. | |
|
| |
reza.com0511
تعداد پستها : 40 Location : mashad Registration date : 2008-08-31
| عنوان: رد: در مورد ذخيره فايل متني السبت سبتمبر 13, 2008 1:45 pm | |
| وباز هم سلام بر دوستان. من كد صفحه قبلو كه 00110 عزيز زحمتشو كشيد با راهنمايي هاي آقاي شبان بصورت زير اصلاحش كردم. ولي فقط براي حروف انگليسي جواب ميده. ومن نتونستم از تابع () DataOutputStream.writeUTF8 براي ذخيره حروف فارسي استفاده كنم. لطفا در اصلاحش كمكم كنيد . و باز هم ممنون void saveFile() { ByteArrayOutputStream baos = new ByteArrayOutputStream(); DataOutputStream dos= new DataOutputStream(baos); try { String url ="file:///C:/other/myfile.txt"; String string = txtbox.getString(); char data[] = string.toCharArray(); FileConnection fconn = (FileConnection)Connector.open(url, Connector.READ_WRITE); if (!fconn.exists()) { fconn.create(); } dos = fconn.openDataOutputStream(); for(int i=0; i<data.length;i++) { dos.write(data[i]); } dos.close(); fconn.close(); } catch (IOException ioe) {
} } | |
|
| |
00110
تعداد پستها : 123 Location : Tab Registration date : 2008-05-03
| عنوان: !!! الأحد سبتمبر 14, 2008 3:49 am | |
| - haamoon نوشته است:
- خب این هنوز هم مشکل داره!
1- همون طور که گفتم String.getBytes() به جای کارکترهای غیر اسکی ? برمی گردونه و دیتای شما همینجا از بین می ره، پس اصلا از این تابع استفاده نکنید. 2- و تابع DataOutputStream.writeUTF اصلا آرگومان byte[] نداره! آرگومانش String هست: DataOutputStream.writeUTF(String string)
خوب کافی هست که متغییر string رو مستقیما با این تابع تو فایل بنوسیم، 00110 جان اگر درستش کنی و کدش رو برامون بذاری خیلی گلی. امیر اقا شرمنده دیر شد یه کم مشکلات یقه مارو گرفته بود نمیتونستم بیام ... - كد:
-
private void saveFile(String path, String name) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); DataOutputStream dos= new DataOutputStream(baos); try { String url = path + name; String string = textbox.getString(); FileConnection fconn = (FileConnection)Connector.open(url, Connector.READ_WRITE); if (!fconn.exists()) { fconn.create(); } dos = fconn.openDataOutputStream();
dos.writeUTF(string);
dos.close(); fconn.close(); } catch (IOException ioe) { } } | |
|
| |
reza.com0511
تعداد پستها : 40 Location : mashad Registration date : 2008-08-31
| عنوان: رد: در مورد ذخيره فايل متني الأحد سبتمبر 14, 2008 3:33 pm | |
| Mer 30 00110 انشاءالله كه اين كد جواب ميده | |
|
| |
reza.com0511
تعداد پستها : 40 Location : mashad Registration date : 2008-08-31
| عنوان: رد: در مورد ذخيره فايل متني الإثنين سبتمبر 15, 2008 3:04 pm | |
| با سلام.00110 عزيز من كد مجدد واصلاح شده شما رو هم رو گوشيم تست كردم ولي جواب نداد . نه حروف انگليسي و نه فارسي! فكر كنم متن save ميشد(چون به حجم فايل اضافه ميشد) اما موقع باز كردنش هيچي نمايش داده نميشد!اصلان فكر كنم با UTF مشكل داره.البته اون كد بالايي كه من من ازش استفاده كردم (بدون write.UTF8()) برا حروف انگليسي جواب ميداد. حالا اين فارسي مشكل ساز شده. اگه از بجه هاي عزيز كسي ميتونه كد رو اصلاح كنه ودوباره بذاره. چند روزه منتظرم.ممنون. | |
|
| |
reza.com0511
تعداد پستها : 40 Location : mashad Registration date : 2008-08-31
| عنوان: رد: در مورد ذخيره فايل متني الثلاثاء سبتمبر 16, 2008 4:06 pm | |
| | |
|
| |
00110
تعداد پستها : 123 Location : Tab Registration date : 2008-05-03
| عنوان: !!! الأربعاء سبتمبر 17, 2008 4:37 am | |
| | |
|
| |
reza.com0511
تعداد پستها : 40 Location : mashad Registration date : 2008-08-31
| عنوان: رد: در مورد ذخيره فايل متني الأربعاء سبتمبر 17, 2008 3:57 pm | |
| سلام . دوست من 00110 عزيز:خيلي دوست دارم با RMS كار كنم اما مشكل من اينه كه تا حالا با RMS كار نكردم وبلد نيستم و من هنوز به اندازه كافي مثل شما وارد نيستم. ميشه لطف كني يك تكه برنامه بذاري كه با استفاده از RMS يك فايل متني رو ذخيره كنه (كه هم روي نوكيا قابل اجرا باشه هم سوني اريكسون). اگر لطف كني كه خيلي ممنونت ميشم چون هم ميخوام يه چيزي از RMS ياد بگيرم و هم كارم راه ميفته. ممنون | |
|
| |
00110
تعداد پستها : 123 Location : Tab Registration date : 2008-05-03
| عنوان: !!! الخميس سبتمبر 18, 2008 2:00 am | |
| - reza.com0511 نوشته است:
- سلام . دوست من 00110 عزيز:خيلي دوست دارم با RMS كار كنم اما مشكل من اينه كه تا حالا با RMS كار نكردم وبلد نيستم و من هنوز به اندازه كافي مثل شما وارد نيستم. ميشه لطف كني يك تكه برنامه بذاري كه با استفاده از RMS يك فايل متني رو ذخيره كنه (كه هم روي نوكيا قابل اجرا باشه هم سوني اريكسون). اگر لطف كني كه خيلي ممنونت ميشم چون هم ميخوام يه چيزي از RMS ياد بگيرم و هم كارم راه ميفته. ممنون
منم شاگردم ولی خب همه که از اول برنامه نویس نبودن هر جور بگی من در خدمتتم اینا رو بخون تکمیل هست اگه نفهمیدی بپرس سورس هم همه جا هست یه Google بکن در ضمن اگه نتونستی بازم بنویسی بگو سورس هم میدم ... - كد:
-
http://developers.sun.com/mobility/midp/articles/databaserms/ http://developers.sun.com/mobility/midp/articles/databasemap/ http://developers.sun.com/mobility/midp/articles/databasemapextend/ | |
|
| |
reza.com0511
تعداد پستها : 40 Location : mashad Registration date : 2008-08-31
| عنوان: رد: در مورد ذخيره فايل متني السبت سبتمبر 20, 2008 4:17 pm | |
| - 00110 نوشته است:
- reza.com0511 نوشته است:
- سلام . دوست من 00110 عزيز:خيلي دوست دارم با RMS كار كنم اما مشكل من اينه كه تا حالا با RMS كار نكردم وبلد نيستم و من هنوز به اندازه كافي مثل شما وارد نيستم. ميشه لطف كني يك تكه برنامه بذاري كه با استفاده از RMS يك فايل متني رو ذخيره كنه (كه هم روي نوكيا قابل اجرا باشه هم سوني اريكسون). اگر لطف كني كه خيلي ممنونت ميشم چون هم ميخوام يه چيزي از RMS ياد بگيرم و هم كارم راه ميفته. ممنون
منم شاگردم ولی خب همه که از اول برنامه نویس نبودن هر جور بگی من در خدمتتم اینا رو بخون تکمیل هست اگه نفهمیدی بپرس سورس هم همه جا هست یه Google بکن در ضمن اگه نتونستی بازم بنویسی بگو سورس هم میدم ... - كد:
-
http://developers.sun.com/mobility/midp/articles/databaserms/ http://developers.sun.com/mobility/midp/articles/databasemap/ http://developers.sun.com/mobility/midp/articles/databasemapextend/ سلام . من قسمت زيادي از مطالب در مورد RMS لينك هاي بالا رو با زبون بي زبوني ترجمه كردم و خوندم و يه چيزهايي از RMS فهميدم. ولي نه خيلي زياد. ولي به نظر خودم فكر نميكنم براي ذخيره يك فايل ممتني ساده نياز به RMS باشه چون فقط ميخوام متنه تو پوشه other گوشي ذخيره بشه و ديگر هيچ.. به نظرم اگر همون كد صفحه قبل برا نوشتن فارسي اصلاح ميشد خيلي بهتر بود. ممنون و منتظر جواب دوستان هستم. | |
|
| |
| در مورد ذخيره فايل متني | |
|