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

كيفيه التعامل مع الكلمات العربيه في لغهc++

بدأه الابداع البرمجي هو هدفي في 7 يوليو 2011 · 15 رد · 1,015 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بعد التحيه والسلام على اعضاء المنتدى المحترمين ....

لكي ابدأ بمشروع التخرج لي ..محتاج مساعده وهي انه كيفيه اتعامل مع نص باللغه العربيه موجود في فايل او اقوم بادخاله عن طريق الكيبورد ..واتعامل معه في عمليه التقطيع او غيرها كما اتعامل مع الحروف الاجنبيه ....فهل هنالك داله للتحويل والتعامل ام هنالك علاقه ؟؟؟ الي يعرف لا يقصر علينا

ولكم جزيل الشكر والاحترام

#2

ما تبحث عنه هو ال Unicode سواء اكانت حروف عربيه او غير عربيه ، اولاً يجب ان يكون الكومبايل الذي تتعامل معه يدعم ذلك ، ثانياً ان عمليه القرائه والكتابه سهله جداً،

مثلاً لل files استخدم wfstream بدلاً من fstream او حتي يمطنك استخدام fstream ولامن wfstream اسهل .

اما عن القرائه من لوح المفاتيح نعم يمكنك ذلك ولكن لاتستطيع عمل ذلك من خلال شاشه الكونسول.

#3

مشكور على الرد لكن احتاج تفصيل اكثر ...اني اشتغل المشروع مالتي على (مايكرسوفت فيجول c++) >> وحاليا استخدمت الداله الي ذكرتها يكول غير موجوده هذا المكتبه ؟؟؟ ممكن شرح اوفى وشكرا الك

#4

النوع wchar_t يستخدم لمثل هذا الأمر و الترميز المستخدم يعود للمترجم و في الأغلب يكون إما Universal Character Set الخاص بـ ISO او UTF-16 الخاص بـ Unicode، و مهما كان ايهم فالقيم الرقميه المستخدمه واحده بكلاهما.

لإستخدام الحروف العربيه يتم كالتالي:

whcar_t c = L'ض';

و الله ولي التوفيق

مدونتي: C++ Tips and Tricks

#5

عليك استعمال windows.h (إن كنت من محبي windows) و إليك شرحا سريعل حول كيفية عمل ذلك:

أولا كل دوال windows.h تحتوي على نسختين، واحدة تقبل unicode و الأخرى ansii ومعضمها تنتهي ب A(ل ansii) أو W ( ل wide) مثلا نجد :

RegisterClassExA() التي تقبل متغيرات ansii

RegisterClassExW() التي تقبل متغيرات wide أي unicode ( و بالتالي العربية)

ثم هناك أسطر #deine و هي تقريبا كالتالي

#ifdef UNICODE
#define fuction functionW
#else
#define fonctio fonctionA
#endif

إذن يمكنك استعاء الدوال بشكل عادي و استدعاؤها دون A أو W شريطة عمل

#define UNICODE

و ذلك قبل

#include windows.h

ثم استعمل TCHAR الذي يصير wchar_t أو char حسب الحاجة، وبدل L استعمل

TEXT (char *)

خلاصة الأمر هو أن تعريف UNICODE قبل إدراج windows.h يخبر المعالج أننا نستخدم النسخة UNICODE و إلا فنحن نعمل تحت ansii، و جدير بالدكر أن UNICODE أسرع من ansii لأن دوال ansii تقوم فقط بتحويل المدخلات إلى UNICODE تم تستدعي الدوال الأولى،

ثم من المستحيل استعمال دوال std و iostream ... مع العربية، ومن الأفضل استعمال مكتبات أخرى مثل windows.h و ربما Qt H أو GTK للونوكس ...

تم تعديل هذه المشاركة بواسطة 7.marouane في 7 يوليو 2011 في 21:43

#6

اشكركم جزيل الشكر وراح اطبق كلامكم واذا صادفتني مشكله مرجعي الكم بارك الله بيكم جميعا

#7
اقتباس
ثم من المستحيل استعمال دوال std و iostream

هذا الكلام غير صحيح.

مدونتي: C++ Tips and Tricks

#8
اقتباس
إقتباس

ثم من المستحيل استعمال دوال std و iostream

هذا الكلام غير صحيح.

أخي، أنا أقصد أن هذه المكتبات برمجت في الأصل للتعامل مع ANSII، مثلا cout تقبل char و هذا لا ينفي عمل surchage للمكتبة لتقبل العربية، لكن ذلك يدخل في مجال المكتبات الإضافية و ليس في المكتبة القياسية ( و أقول ال )،

هناك مشكل آخر وهو أن الكونصول على الويندوز لا تقبل العربية على حد علمي، و هذا بغض النظر عن لغة البرمجة المستعملة، أما على الماك فالوضع مختلف ,,, المشكل مشكل توافق مع UNICODE ليس إلا

#9

احبابي بعدني بنفس الدوخه مكدرت اوصل لنتيجه اكتب الدوال والتطبيق غامض ممكن احد يكتبلي برنامج صغير مطبق على ال c++ حته ترسخ عندي الفكره واكون ممنون الكم

#10

هذا الموضوع يفيدك

/index.php?showtopic=241522

بالتوفيق

1


﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾

الأنفال ۳۳                                  
 

#11

يبدو انني كتبت تعليق على موضوع مختلف :(

تم تعديل هذه المشاركة بواسطة Ali Al-Zyoud في 9 يوليو 2011 في 00:32

#12
اقتباس

لن يطبع بالعربيه على ال console

وهل قلت انا انه سيطبع باللغة العربية داخل ال console ???????????

انا قلت يفيدك

وعلى كل هذا الموضوع للويندوز واللينوكس\يونكس وعن تجربة

لكن داخل بيئات تطوير IDEs وليس داخل الدوس

خطوط الدوس لاتدعم العربية


﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾

الأنفال ۳۳                                  
 

#13

اخويه محمد تنفذ هلبرنامج الي عطيته الي بالرابط لكن...... المشكله انه يتعامل مع كل الرموز بس الاحرف العربيه ميظهر عندي اي شي عند التنفيذ علما اني اطبقه على" المياكرسوفت فيجول سي بلس بلس "

تم تعديل هذه المشاركة بواسطة الابداع البرمجي هو هدفي في 9 يوليو 2011 في 10:55

#14

لكل بيئة تطوير IDE طريقة للتعامل مع برامج الكونسول فمنهم من يعرض النتيجة فى كونسول داخلى internal console

ومنهم من يعرضها فى كونسول نظام التشغيل ومنهم من يسمح لك بالاختيار بين هذين النوعين مثل netbeans

لم اتعامل مع visual studio كثيرا

طبقت الكود فى الرابط السابق داخل برنامج netbeans على الكونسول الداخلى ومع تغيير تشفير الملف الى windows-1256

وكذلك على eclipse ولكن مع تشفير UTF-8

حاول تغيير التشفير encoding للملف

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

هذه طريقة تكتب وتعرض داخل بيئة التطوير فقط ليس اكثر

بالتوفيق


﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾

الأنفال ۳۳                                  
 

#15

اخواني الى حد الان لم تحل لدي هاي المشكله ...يطبع كل الرموز الا العربيه ميتعامل وياها وفقا للبرنامج الي موجود في رابط الاخ محمد ..... يمكن ح الاكي صعوبه بالتعامل مع الحروف العربيه ح اضطر الى تغيير المشروع .. ان لم احل هذه المشكله في هذه اليومين ...والله ولي التوفيق شكرا للجميع .

#16

اخر ما استطيع قوله

اقتباس

حاول تغيير التشفير encoding للملف

او للمشروع كاملا ومعذرة على انى لا اتعامل مع vs

فلم استطع مساعدتك

بالتوفيق


﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾

الأنفال ۳۳                                  
 

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

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

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

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

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