الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة عند قراءةملف مكتوب بالعربي

مغلق
بدأه نمرالعدوان في 22 يوليو 2010 · 18 رد · 1,551 مشاهدة · في JavaME
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

[

السلام عليكم ورحمة الله وبركاته

اخوتي الاعضاء والمشرفين....

في الكود المرفق برنامج يقرأ ملف نصي موجود في src ويقرأ محتواه اذا كان مكتوب باللغة الانكليزية ولكن عند كتابة الملف باللغة العربية يظهر نص مخربط اي ربش

مالحل؟؟؟ ارجوا متابعة الموضوع وجزاكم الله خير

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import java.io.*;
public class ReadDisplayFile extends MIDlet implements CommandListener
{
private Display display; // Reference to Display object
private Form fmMain; // Main form
private Command cmHelp; // Command to show a help file
private Command cmExit; // Command to exit the MIDlet
private Alert alHelp; // Alert to display help file text
public ReadDisplayFile ()
{
display = Display.getDisplay(this);
140
cmHelp = new Command("Help", Command.SCREEN, 1);
cmExit = new Command("Exit", Command.EXIT, 1);
fmMain = new Form("Read File");
fmMain.addCommand(cmExit);
fmMain.addCommand(cmHelp);
fmMain.setCommandListener(this);
}
public void startApp()
{
display.setCurrent(fmMain);
}
public void pauseApp()
{ }
public void destroyApp(boolean unconditional)
{ }
public void commandAction(Command c, Displayable s)
{
if (c == cmHelp)
{
String str;
// Access the resource and read its contents
if ((str = readHelpText()) != null)
{
// Create an Alert to display the help text
alHelp = new Alert("Help", str, null, null);
alHelp.setTimeout(Alert.FOREVER);
// Display the alert followed by the main form
display.setCurrent(alHelp, fmMain);
}
}
else if (c == cmExit)
{
destroyApp(false);
notifyDestroyed();
}
}
private String readHelpText()
{
InputStream is = getClass().getResourceAsStream("help.txt");
try
{
StringBuffer sb = new StringBuffer();
int chr, i = 0;
// Read until the end of the stream
while ((chr = is.read()) != -1)
sb.append((char) chr);
return sb.toString();
}
catch (Exception e)
{
141
System.out.println("Unable to create stream");
}
return null;
}
}
#2

لايوجد مرفق !

#3

السلام عليكم

اولا: يجب حفظ الملف بصيغة UTF-8

باستخدام ال Notepad عند ظهور نافذة Save اختر UTF-8 من القائمة

post-111465-013840000 1279817450_thumb.p

ثانيا: يجب قرأة الملف بصيغة UTF-8 كالتالي:

private String readHelpText() {
        InputStream is = getClass().getResourceAsStream("help.txt");
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        try {
            byte[] bufferByte = new byte[1];
            while (is.read(bufferByte) != -1) {
                baos.write(bufferByte);
            }
            return new String(baos.toByteArray(), "UTF-8");
        } catch (Exception e) {
            System.out.println("Unable to create stream");
        }
        return null;
    }

تحياتي

المرفقات
img1.png
#4
محمد عرسان كتب:

السلام عليكم

اولا: يجب حفظ الملف بصيغة UTF-8

باستخدام ال Notepad عند ظهور نافذة Save اختر UTF-8 من القائمة

post-111465-013840000 1279817450_thumb.p

ثانيا: يجب قرأة الملف بصيغة UTF-8 كالتالي:

private String readHelpText() {
        InputStream is = getClass().getResourceAsStream("help.txt");
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        try {
            byte[] bufferByte = new byte[1];
            while (is.read(bufferByte) != -1) {
                baos.write(bufferByte);
            }
            return new String(baos.toByteArray(), "UTF-8");
        } catch (Exception e) {
            System.out.println("Unable to create stream");
        }
        return null;
    }

تحياتي

ليس شرطاً أن يتم حفظ الملف بـ UTF-8 encoding .

قبل قراءة أي ملف يجب معرفة باي encoding هو و على ضوء ذلك تتم عملية القراءة . فبالإمكان أن يكون utf-8 / utf16 / windows 1256 ...

إن كنت أنت من ينشئ الملف فيفضل إستخدام utf-8 او unicode كما أشار الأخ محمد ...

#5

صحيح يا ياسين.. لكن من تجربتي أن الشيء الوحيد المضمون وجوده على جميع الهواتف هو UTF-8 لذلك أنا أنصح دائما بالاعتماد على الطريقه التي ذكرها محمد.

#6

جزاكم الله خير الجميع مشي الحال وتمت القراءة العربية

جعله الله في ميزان حسناتكم

#7

السلام عليكم ورحمة الله وبركاته

ماذا عن اذا كان النص يحتوي على ايات قرانية ، او جملة ذات تشكيل

وشكرا

#8

انسي الموضوع. لن تعمل لن تعمل لأن 95% من الهواتف لا تدعم التشكيل. الحل الوحيد هو استخدام الصور في مثل هذه الحالات.

#9

السلام عليكم ورحمة الله وبركاته

هل يمكن استدعاء ملفات غير Notepad

مثل ملف وورد او غيره

وشكرا

#10
clang كتب:

السلام عليكم ورحمة الله وبركاته

هل يمكن استدعاء ملفات غير Notepad

مثل ملف وورد او غيره

وشكرا

لا ، لا يمكن :happy:

قدرات ال JME بسيطة :lol:

تم تعديل هذه المشاركة بواسطة محمد عرسان في 4 سبتمبر 2010 في 07:15

#11

السلام عليكم ورحمة الله وبركاته

حسنا

عند كتابة النص Notpad

هل يشترط خط معين او حجم معين

انا جربت ، احيانا يعمل و اخرى لا يعمل

مثلا اذا تم اختيار خط نسخ احيانا لا يعمل

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

اقصد مثل الحرف A = 61H

هل هذه المعلومة صحيحه؟

thanks

#12

ال Notepad لا علاقة له بنوع الخط

اصلا لا يتم حفظ اي معلومات عن الخط في ملف ال TXT

#13

السلام عليكم ورحمة الله وبركات

ماذا اذا كان الملف من نوع dat، او in او out

هل يستطيع البرنامج قراءته

بصراحة انا سابق كتبت برنامج بلغة سي ++ وكان يعمل

وشكرا

#14

السلام عليكم ورحمة الله وبركاته

حاولت عمل البرنامج بحيث يكون الملف عن طريق TextBox

كيف اجعل TextBox للقراءة فقط ولا يسمح بالكتابة

وشكرا

#15
clang كتب:

السلام عليكم ورحمة الله وبركاته

حاولت عمل البرنامج بحيث يكون الملف عن طريق TextBox

كيف اجعل TextBox للقراءة فقط ولا يسمح بالكتابة

وشكرا

تفضلى

TextBox textBox = new TextBox("Test", "any words for testing", 30, TextField.UNEDITABLE);

اخر متغير فى البناء الخاص بالـ textBox

لحدد نوع المدخلات الى او نوعه من حيث القراءه فقط اوو القراءه والكتابه

يعنى بيحدد القيد على الtextBox

لجميع القيود المستخدمه عليه

عن طريق الـ TextField

وتأتى بكل القيود التى منها

ANY
 EMAILADDR
 NUMERIC
 PHONENUMBER
 URL 
DECIMAL

PASSWORD
 UNEDITABLE
 SENSITIVE NON_PREDICTIVE
 INITIAL_CAPS_WORD
 INITIAL_CAPS_SENTENCE

وهناك متغيرات اخرى يمكنك الاطلاع عليها

فى الـ TextField class

وليس فى الـ TextBox class

من هنا

http://download.oracle.com/javame/config/cldc/ref-impl/midp2.0/jsr118/javax/microedition/lcdui/TextField.html

بالتوفيق

Software Developer
Mahmoudkelany.com


 

#16

السلام عليكم

ياريت يا أخوتي أفهم كيف أرجع نظام ويندوز اكس بي يظهر الواجهات المكتوبة بالخط العربي ، خاصو و أنني عبثت بأحد مكونات لوحة التحكم فصارت كل الخطوط العربية في الوجهات غير مقروءة

يا ريت تساعدوني بدون فرمتة للجهاز

وشكرا

قال رسول الله صلى الله عليه و سلم :

عبادة في الهرج كهجرة إلي

وقال أيضاً :

من عيّر أخاه بذنب لم يمت حتى يفعله

أو كما قال

www.dr.syria4soft.com

#17
flawer كتب:

السلام عليكم

ياريت يا أخوتي أفهم كيف أرجع نظام ويندوز اكس بي يظهر الواجهات المكتوبة بالخط العربي ، خاصو و أنني عبثت بأحد مكونات لوحة التحكم فصارت كل الخطوط العربية في الوجهات غير مقروءة

يا ريت تساعدوني بدون فرمتة للجهاز

وشكرا

وعليكم السلام ورحمه الله وبركاته

اخى الكريم هذا السوال ليس فى مكانه

يجب وضع سوالك فى المكان الصحيح

كى تجد من يجيب عليك

ونحن لا ندرى ما الذى حصل لجهازك

فريح نفسك وقم بتنزيل نسخه جديده

Software Developer
Mahmoudkelany.com


 

#18

ممكن تجرب تعمل restore الأول

start->all programs->accessories->system tools->system restore

ثم اضغط next

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

ثم تابع next

banner.jpg

هذا الموضوع مغلق.

مواضيع مشابهة