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

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

بدأه عطاشى في 23 يوليو 2008 · 6 رد · 2,037 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اخواني الكرام,

اولا السلام عليكم ورحمة الله واحب ان اجد بينكم مكانا لي كعضو جديد.

ثانيا, انا استخدم برنامج السي بلس بلس بلدر النسخة الخامسة من بورلاند واواجه مشكلة لعلها ناتجة عن كوني مبتدئ اكثر من كونها مشكلة حقيقية.

لقد صنعت برنامج هدفه البحث في اي ملف عن كلمات معينة ويعرض الجمل التي تحتوي هذه الكلمات. ولكن عندما يكون الملف المقصود مكتوب بالعربي (اي ان الكلمات التي في داخله هي عربية) فانها يظهر حرف اللام العربي ورموز لا افهمها. بمعنى ان البرنامج لا يتعرف على اللغة العربية فما الحل؟

الصورة المرفقة توضح المشكلة التي اعنيها

ارجوا المساعدة.

post-166748-1216779451_thumb.jpg

تم تعديل هذه المشاركة بواسطة عطاشى في 23 يوليو 2008 في 05:22

#2

يجب أن تعلم النص بأي encoding . وبعد أن تقوم بقراءته بالشكل الصحيح يبقى عليك إظهاره بشكل صحيح أيضاً وهنا يفضل أن تستعمل مكونات تدعم unicode حيث أن المكونات التابعه لـ C++Builder لا تدعم ذلك ...

راجع هذا لتأخذ فكرة مبدئية

http://unicode.org/faq/utf_bom.html

موقع Alan Wood مفيد أيضاً

http://www.alanwood.net

تذكر لديك نقطتين :

1) معرفة الـ Encoding ومن ثم عمل البحث بحيث تحول الكلمة إلى الـEncoding الخاص بالملف ومن ثم قراءة النص المراد بشكل صحيح .

2) إظهار النص بشكل صحيح على واجهة البرنامج والتي ربما توجب عليك تحويل النص الناتج من الخطوة (1) إلى unicode ...

بإمكانك مراجعة أي كود لـ Text Editor يدعم الـ encoding المختلفة بشكل جيد . ربما تجد مشاريع مفتوحة المصدر في sf ..

"First they ignore you, then they laugh at you, then they attack you, then you win"

===

اقتباس

حُكَّامُـنَا إِنْ تَصَـدّوا لِلْحِمَــى اقْتَحَمُـوا ***** وَإِنْ تَصَدَّى لَـهُ المُسْتَعْمِـرُ انْسَحَبُـوا

هُمْ يَفْرشـُونَ لِجَيْـشِ الغَــزْوِ أَعْيُنَـهُـمْ ***** وَيَدَّعُــونَ وُثُـوبَـاً قَـبْـلَ أَنْ يَثِـبُــوا

الحَاكِمُـونَ و«وَاشُنْـطُـنْ» حُكُومَتُـهُـمْ ***** وَاللامِعُــونَ وَمَـا شَعَّـوا وَلا غَرَبُــوا

القَاتِلُـــونَ نُبُــوغَ الشَّـعْــبِ تَرْضِـيَـــةً ***** لِلْمُعْتَدِيــنَ وَمَـا أَجْـدَتْـهُـمُ الـقُــرَبُ

لَهُمْ شُمُـوخُ «المُثَنَّـى» ظَاهِـرَاً وَلَهُـمْ ***** هَـوَىً إِلَـى بَابَـك الخَرْمِـيّ يُنْتَسَـبُ

البردوني "أبو تمام وعروبة اليوم" 1971

===

اقتباس
عبيد الهوى يحكمون البـلاد ***** ويحكمهــم كلّهـــم درهــــــم

و تقتـادهـم شهـوة لا تنــام ***** وهـــم فـي جـهالتهــم نــــوّم

ففــي كـــلّ ناحيــة ظـالـــم ***** غبــــــيّ يسـلـّطــــه أظلـــم

أيا من شبعتم على جوعــنا ***** وجـــوع بنينـا ألـم تتخمـــوا ؟

ألم تفهموا غضبة الكادحين ***** على الظلـم ؟ لا بدّ أن تفهموا

البردوني "نحن و الحاكمون "

#3
cipher كتب:
يجب أن تعلم النص بأي encoding . وبعد أن تقوم بقراءته بالشكل الصحيح يبقى عليك إظهاره بشكل صحيح أيضاً وهنا يفضل أن تستعمل مكونات تدعم unicode حيث أن المكونات التابعه لـ C++Builder لا تدعم ذلك ...

راجع هذا لتأخذ فكرة مبدئية

http://unicode.org/faq/utf_bom.html

موقع Alan Wood مفيد أيضاً

http://www.alanwood.net

تذكر لديك نقطتين :

1) معرفة الـ Encoding ومن ثم عمل البحث بحيث تحول الكلمة إلى الـEncoding الخاص بالملف ومن ثم قراءة النص المراد بشكل صحيح .

2) إظهار النص بشكل صحيح على واجهة البرنامج والتي ربما توجب عليك تحويل النص الناتج من الخطوة (1) إلى unicode ...

بإمكانك مراجعة أي كود لـ Text Editor يدعم الـ encoding المختلفة بشكل جيد . ربما تجد مشاريع مفتوحة المصدر في sf ..

شكرا لك اخي على الرد ولكن هلا وضحت اكثر من ذلك؟

بمعنى كيف اعرف الـ

(Encoding)

الخاص بالملف وكيف احول الكلمة اليه؟

#4

الايوجد في الفريم خصائص لغة أو خط تاكد من ذلك.

tvquran_6.gif

#5

بالنسبة لـ UTF8,UTF16 عليك بتفحص الـ BOM الخاص بها

UTF8 : 0xEFBBBF

UTF16BE : 0xFEFF

UTF16LE: 0xFFFE

طبعاً ستبقى هناك حالات أخرى ...

حاول تنزل كود notepad plus واعرف كيف يتعرف على الـ file encoding ..

http://notepad-plus.sourceforge.net/uk/download.php

لم أستطع تنزيل الكود لان وصلة التنزيل لا تفتح عندي...

"First they ignore you, then they laugh at you, then they attack you, then you win"

===

اقتباس

حُكَّامُـنَا إِنْ تَصَـدّوا لِلْحِمَــى اقْتَحَمُـوا ***** وَإِنْ تَصَدَّى لَـهُ المُسْتَعْمِـرُ انْسَحَبُـوا

هُمْ يَفْرشـُونَ لِجَيْـشِ الغَــزْوِ أَعْيُنَـهُـمْ ***** وَيَدَّعُــونَ وُثُـوبَـاً قَـبْـلَ أَنْ يَثِـبُــوا

الحَاكِمُـونَ و«وَاشُنْـطُـنْ» حُكُومَتُـهُـمْ ***** وَاللامِعُــونَ وَمَـا شَعَّـوا وَلا غَرَبُــوا

القَاتِلُـــونَ نُبُــوغَ الشَّـعْــبِ تَرْضِـيَـــةً ***** لِلْمُعْتَدِيــنَ وَمَـا أَجْـدَتْـهُـمُ الـقُــرَبُ

لَهُمْ شُمُـوخُ «المُثَنَّـى» ظَاهِـرَاً وَلَهُـمْ ***** هَـوَىً إِلَـى بَابَـك الخَرْمِـيّ يُنْتَسَـبُ

البردوني "أبو تمام وعروبة اليوم" 1971

===

اقتباس
عبيد الهوى يحكمون البـلاد ***** ويحكمهــم كلّهـــم درهــــــم

و تقتـادهـم شهـوة لا تنــام ***** وهـــم فـي جـهالتهــم نــــوّم

ففــي كـــلّ ناحيــة ظـالـــم ***** غبــــــيّ يسـلـّطــــه أظلـــم

أيا من شبعتم على جوعــنا ***** وجـــوع بنينـا ألـم تتخمـــوا ؟

ألم تفهموا غضبة الكادحين ***** على الظلـم ؟ لا بدّ أن تفهموا

البردوني "نحن و الحاكمون "

#6
http://heanet.dl.sourceforge.net/sourceforge/notepad-plus/npp.5.0.2.src.zip

أقل من 2 ميجا .

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#7

شكراً GM ...

كما قلت في الرد السابق عليك مقارنة بداية الملف مع الـ BOM التي اشرت إليها وبذا تعرف نوعية الـ encoding -راجع determineEncoding في الملف Utf8_16.cpp في كود notepad plus - ومن ثم تقوم بالبحث عن الكلمة (بعد تحويلها إلى نفس الـ encoding ) ومن ثم تظهر النص المطلوب بعد تحويله إلى unicode وهنا عليك إستعمال أدوات تدعم unicode لأن ادوات الـ C++builder لا تدعم ....

أتوقع ان الملف الذي تقرأه حالياً محفوظ بـ Ansi encoding لذا لم تقابلك مشكلة الـ encoding وكانت المشكلة في وقت إظهار النص وحلها ذكرته مسبقاً ... لكن يفضل أن تجعل الحالة عامة وتناقش جميع الإحتمالات ...

العملية ليس صعبة فقط تحتاج محاولة منك ...

"First they ignore you, then they laugh at you, then they attack you, then you win"

===

اقتباس

حُكَّامُـنَا إِنْ تَصَـدّوا لِلْحِمَــى اقْتَحَمُـوا ***** وَإِنْ تَصَدَّى لَـهُ المُسْتَعْمِـرُ انْسَحَبُـوا

هُمْ يَفْرشـُونَ لِجَيْـشِ الغَــزْوِ أَعْيُنَـهُـمْ ***** وَيَدَّعُــونَ وُثُـوبَـاً قَـبْـلَ أَنْ يَثِـبُــوا

الحَاكِمُـونَ و«وَاشُنْـطُـنْ» حُكُومَتُـهُـمْ ***** وَاللامِعُــونَ وَمَـا شَعَّـوا وَلا غَرَبُــوا

القَاتِلُـــونَ نُبُــوغَ الشَّـعْــبِ تَرْضِـيَـــةً ***** لِلْمُعْتَدِيــنَ وَمَـا أَجْـدَتْـهُـمُ الـقُــرَبُ

لَهُمْ شُمُـوخُ «المُثَنَّـى» ظَاهِـرَاً وَلَهُـمْ ***** هَـوَىً إِلَـى بَابَـك الخَرْمِـيّ يُنْتَسَـبُ

البردوني "أبو تمام وعروبة اليوم" 1971

===

اقتباس
عبيد الهوى يحكمون البـلاد ***** ويحكمهــم كلّهـــم درهــــــم

و تقتـادهـم شهـوة لا تنــام ***** وهـــم فـي جـهالتهــم نــــوّم

ففــي كـــلّ ناحيــة ظـالـــم ***** غبــــــيّ يسـلـّطــــه أظلـــم

أيا من شبعتم على جوعــنا ***** وجـــوع بنينـا ألـم تتخمـــوا ؟

ألم تفهموا غضبة الكادحين ***** على الظلـم ؟ لا بدّ أن تفهموا

البردوني "نحن و الحاكمون "

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…