منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

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



اقوم بتخزينه في ملف xml فيصبح بهذا الشكل الخاطئ



وعند عرضه في المشروع يظهر ايضا بهذا الشكل الخاطئ



الي مدايقني بقي اني انسخ الكود والصقه في المشاركه هنا يظهر مظبوط 

متاح منه اصدار Nokia 220 Dual SIM RM-969 خطين

المشكلة دي تتحل ازاي بارك الله فيكم
اعمل له Split و قم بتخزينه علي هيئة كلمات منفردة و حين تحتاجه قم بتحويل الكلمات إلي String
أو يمكن تخزينه علي هيئة مصفوفة و تقوم بقراءة المصفوفة ثم لا حقا و حين تحتاجها تقوم بتحويلها الي String
شكرا لك والله توقعت انك ترد فعلا ههههههه الله يوفقك يارب
بالنسبة عن جمع المصفوفه وعرضها تعرض بنفس الشكل
انا وصلت لحل لاكنه صعب التنفيذ
وهو عند رسم النص علي العنصر يتم رسمه مضبوط
لاكن للاسف صعب ارسم كل العناصر الامر صعب جدا
دي مشكلة في عرض التكست الذي به أكثر من لغة و كل لغة لها إتجاه مختلف
وعموما كلاسات الجرافكس مكتوبة بأسلوب يستطيع تحديد اتجاه الخط و لهذا وعندما ترسم فإن التكست يظهر بالشكل الصحيح
وبما أن كل الكونترول ترسم String فامر طبيعي أن تجدها تظهر بشكل صحيح

لكن في حالتك هنا و طالما لم تفلح معك Split عليك أن تنزل لمستوي منخفض فليلا و تتعامل مع Char ثم تأخذ كل Char في كل كلمة و تقارنه بمصفوفة بها حروف اللغة العربية و مصفوفة بها حروف اللغة الانجليزية
ثم تقسم التكست الخاص بك الي مصفوفات عموما الموضوع صداع شوية

او في الأصل لو كانت الملفات التي يتم إنزالها خاصة بك فهنا سيكون الأمر أسهل و عليك أن تقوم بكتابة البيانات في الملفات بشكل مناسب حتي تستطيع قراءتها لاحقا و تكتبها بالترتيب المطلوب

الحل الأخر هو ان ترسم التكست علي صورة أبعادها تساوي ارتفاع الفونت و 'عرضها يساوي طول التكست
وتضيف الصور لأي كونترول وليكن مثلا ListBox
ببساطة جداً ... عند عرض نص يحتوي علي اكثر من لغة منها اللغة العربية يجب ضبط خاصية RightToLeft للاداة التي تعرض فيها الكتابة الي Yes 
وهتظبط معاك ان شاء الله  
Idea Idea Idea
جزاكم الله خيرا لتعاونكم معي ربنا يجعله في موازين حسناتكم
ممكن مثال بسيط علي الجمله دي 
متاح منه اصدار Nokia 220 Dual SIM RM-969 خطين

اريد كود يوضح ازاي يتم وضعها في مصفوفة ثم يتم عرضها في تكست بوكس مثلا 
اريد مثال بسيط لافهم الفكرة
في الكود التالي ستجد فكرة لكيفية ضبط إتجاه String به خليط من لغتين مثل الانجليزية و العربية

PHP كود :
       Dim s As String "متاح منه اصدار Nokia 220 Dual SIM RM-969 خطين"

 
       Dim englishChars() As Char = {"a"c"A"c"b"c"B"c"c"c"C"c"d"c"D"c"e"c"E"c"f"c"F"c"g"c"G"c,
 
           "h"c"H"c"i"c"I"c"j"c"J"c"k"c"K"c"l"c"L"c"m"c"M"c"n"c"N"c"o"c"O"c"p"c"P"c,
 
           "q"c"Q"c"r"c"R"c"s"c"S"c"t"c"T"c"u"c"U"c"v"c"V"c"w"c"W"c"x"c"X"c"y"c"Y"c"0"c,
 
           "1"c"2"c"3"c"4"c"5"c"6"c"7"c"8"c"9"c}

 
       Dim l As Integer s.Length 1

        Dim i 
As Integer s.IndexOfAny(englishChars)
 
       Dim first As String s.Substring(0i)
 
       ' الخطوة التالية لنتأكد ان المتغير ليس به غير خروف فقط
        first = first.Trim

        Dim k As Integer = s.LastIndexOfAny(englishChars)
        Dim front As String = s.Substring(k + 1, l - k)

        front = front.Trim

        Dim middle As String = s.Substring(0, l - (front.Length))
        middle = middle.Substring(first.Length, middle.Length - first.Length)

        middle = middle.Trim

        Dim result As String = front + " " + middle + " " + first 

الفكرة يمكن تنفيذها لحالة معينة فقط و هي الحالة التي تحدثت عنها في سؤالك
حاول تستخدم الفكرة و تبني منها شئ أفضل
أنصحك تدرس المصفوفات جيدا فهي واحدة من الأشياء المهمة في الدوت نت و بدونها لا يمكن للمبرمج أن يكون مبرمجا جيدا
تمام كده واضحه الفكره من غير ما اجرب
سواء قمت بادخاله في مصفوفة ام لا في النهاية يتم ارسالة الي الخاصية text علي شكل String
المشكلة في خاصية RightToLeft كما ذكر الاخ Genius Live
تم حل هذه المشكلة ومجموعة اخري من المشاكل بالتخلي الكامل عن اداة ListView لان المفروض كل Item يكون له خاصية RightToLeft منفرد
قمت بعرض البينات بلغة html بصراحة ابهرني الاختلاف مع وجود CSS وجافا سكريبت كتير جدا الا انها اسرع بكتير جدا جدا من اداة ListView
اداة ListView من بطئها الشديد كنت عامل صفحة اخري تظهر (يرجي الانتظار جاري تحميل البينات) هههههههه
يتم جلب البينات من قاعدة كبيره في اقل من ثانية ويتم عمل تعديلات كثيرة في اقل من ثانية ثم لعرضها في ListView يجب عليك ان تقول للمستخدم جاري التحميل هههههههه
حقيقي شكرا لتعاونك معي وجزاك الله خيرا