نمایش نتایج 1 تا 16 از 16

نام تاپیک: مشکل در تغییر رنگ اعراب ها در یک متن عربی.

  1. #1
    کاربر دائمی آواتار hdv212
    تاریخ عضویت
    آبان 1384
    محل زندگی
    قم
    پست
    1,727

    مشکل در تغییر رنگ اعراب ها در یک متن عربی.

    سلام وخسته نباشید.
    یه برنامه هست که متون عربی رو با اعراب هاش نشون میده، من میخوام کاری کنم که اعراب ها به رنگ دیگه ای نمایش داده بشه،فرض کنید مثلا برای تغییر رنگ اعراب فتحه و کسره از کد زیر استفاده کردم :

    string fathe = "َ";            
    string kasre = "ِ";

    //change fathe to red color
    for (int i = 0; i < this.richTextBox1.Text.Length - (fathe.Length + 1); i++)
    {
    if (this.richTextBox1.Text.Substring(i, fathe.Length) == fathe)
    {
    this.richTextBox1.SelectionStart = i;
    this.richTextBox1.SelectionLength = fathe.Length;
    this.richTextBox1.SelectionColor = Color.Red;
    }
    }

    //change kasre to red color
    for (int i = 0; i < this.richTextBox1.Text.Length - (kasre.Length + 1); i++)
    {
    if (this.richTextBox1.Text.Substring(i, kasre.Length) == kasre)
    {
    this.richTextBox1.SelectionStart = i;
    this.richTextBox1.SelectionLength = kasre.Length;
    this.richTextBox1.SelectionColor = Color.Red;
    }
    }

    this.richTextBox1.SelectionStart = 0;
    this.richTextBox1.SelectionLength = 0;


    ولی هیچ اتفاقی نمیافته، با همین روش کلمات رو رنگی میکنم ولی اعراب رو رنگی نمیکنه، میشه کمکم کنید.


    در ضمن با عمل مشابهی کدی نوشتم که اعراب ها رو در متن حذف کنه و این کار رو میکنه به غیر از اعراب مدی که در کلمه ی الضَّآلِّینَ نوشته شده، هر کار میکنم این مد حذف نمیشه، اگه لطف کنید کد درستشو به من بدید، کد حذف اعراب ها رو به این صورت نوشتم :

    string alef_1 = "ﺇ";
    string alef_2 = "ﺃ";
    string alef_3 = "ﺁ";
    string alef_4 = "إ";
    string text = this.richTextBox1.Text;
    this.richTextBox1.Text = text.Replace(alef_1, "ﺍ");
    this.richTextBox1.Text = text.Replace(alef_2, "ﺍ");
    this.richTextBox1.Text = text.Replace(alef_3, "ﺍ");
    this.richTextBox1.Text = text.Replace(alef_4, "ﺍ");


    و

    string hamze_1 = "ﺄ";
    string hamze_2 = "ﺂ";
    string hamze_3 = "ﺈ";
    string text = this.richTextBox1.Text;
    this.richTextBox1.Text = text.Replace(hamze_1, "ﺎ");
    this.richTextBox1.Text = text.Replace(hamze_2, "ﺎ");
    this.richTextBox1.Text = text.Replace(hamze_3, "ﺎ");

  2. #2
    کاربر دائمی آواتار ARA
    تاریخ عضویت
    آبان 1383
    محل زندگی
    Bad Sector
    پست
    448
    سلام
    باز مثل همیشه لطف کن یک نمونه قابل اجرا از کدت رو بگذار تا ما دیگه وقت نگذاریم که اونا رو به صوررت پروژه دربیاریم تست کنیم و چک کنیم و کمک کنیم D:

  3. #3
    کاربر دائمی آواتار hdv212
    تاریخ عضویت
    آبان 1384
    محل زندگی
    قم
    پست
    1,727
    سلام ARA جان، عذر میخوام ازت، اینم نمونه برنامه.
    برای سوال قسمت اول برای تغییر رنگ اعراب ها روی دکمه Highlight Diacratics کلیک کن که باید اعراب های فتحه و کسره به رنگ قرمز در بیاد(که نمیاد)

    برای سوال قسمت دوم درباره حذف علامت مد، روی دکمه ی Remove Madd و Remove Hamze Chasban کلیک کن(تو هیچ کدوم واکنش نشون نمیده)

    باز هم مرسی
    فایل های ضمیمه فایل های ضمیمه

  4. #4
    کاربر دائمی آواتار ARA
    تاریخ عضویت
    آبان 1383
    محل زندگی
    Bad Sector
    پست
    448

    Cool

    سلام من برنامتون رو چک کردم البته کمی هم fاهاش ور رفتم میدونی مشکل کجاست
    اون صحیح مینویسه ولی مشکل تو نشون دادنه
    برای این که مطمئن شم اسم خودم رو با اعراب تو ورد نوشتم و اعراب رو به رنگ دیگه تغییر دادم همونطور که تو عکس پایین میبینی هنگامی که space میزنم و حروف رو از هم جدا میکنم اعراب رنگی دید میشوند ولی هنگامی که روی حروف قرار میگیرند به رنگ همان حرف تغییر رنگ میدهند
    فکر کنم بصورت یک قانونه : اعراب به رنگ حرفی که روی آن قرار گرفته اند دیده میشوند
    باید به یک فکر دیگه باشی
    مثلا overrwrite کردن متد paint

    داری رو قرآن کار میکنی من یک زمانی تو یک همچین گروهی بودم ولی ما با پرل کار میکردیم چون با عربی هیچ مشکلی نداشت و میدونی که پرل به عنوان ربانی برای پردازش متن شناخته میشه
    اگه کمکی لازم بود خبرم کن خوشحال میشم بتونم کاری بکنم
    عکس های ضمیمه عکس های ضمیمه

  5. #5
    کاربر دائمی آواتار hdv212
    تاریخ عضویت
    آبان 1384
    محل زندگی
    قم
    پست
    1,727
    مرسی ARA جان، برای پاک کردن اعراب های متن عربی یه تابع توپ پیدا کردم که اینکار رو انجام میده و مشکل من هم حل میشه :

    //this method that remove diacritic from orginal text (s)
    public String RemoveDiacritics(String s)
    {
    String normalizedString = s.Normalize(NormalizationForm.FormD);
    StringBuilder stringBuilder = new StringBuilder();

    for (int i = 0; i < normalizedString.Length; i++)
    {
    Char c = normalizedString[i];
    if (CharUnicodeInfo.GetUnicodeCategory(c) != UnicodeCategory.NonSpacingMark)
    stringBuilder.Append(c);
    }

    return stringBuilder.ToString();
    }


    ولی مشکل تغییر رنگ اعراب ها کماکان سر جای خودش باقیه، تازه یه مشکل دیگه فرض کنید کاربر یه کلمه ی بی اعراب رو در متن عربی جستجو کنه، خب ما متنها رو در میاریم یکی یکی اعراب هاشو با کد بالایی حذف میکنیم، و توش جستجو میکنیم،اگه کلمه تو متن بود اونو نمایش میدیم(البته متن با اعراب رو)، حالا میخوام کلمه ی مورد جستجو که بی اعراب هست توی متن بااعراب رنگی بشه، حالا چطور حدس بزنیم که اون کلمه اعرابش چی بوده تا توی متن عربی به درستی رنگی بشه ؟

    فرض کنید کاربر کلمه ی 'نستعین' رو جستجو میکنه، حالا مثلا در سوره ی حمد که پیدا کرده، کلمه ی 'نَسْتَعِینُ' رنگی بشه یا همون 'نستعین' رنگی بشه، ولی باز اعراب ها رو چطور نادیده بگیره ؟
    مرسی

  6. #6
    کاربر دائمی آواتار ARA
    تاریخ عضویت
    آبان 1383
    محل زندگی
    Bad Sector
    پست
    448
    عزیزم مثل اینکه نمیدونی regular expression دقیقا واسه همین کاره لازم نیست اعراب رو پاک کنی

    چون در کلمات با قاعده میتوان یک شرط رو چک کرد باشد یا نباشد

    مثلا ذالک رو میشود هم با ک با فتحه match کرد و هم با ک با ضمه و کسره

    رو رگیولار اکسپرشن یک کم بیشتر مطالعه کن

    چون خیلی بیشتر از اونی که فکر میکنی میتونه کمکت کنه

  7. #7
    کاربر دائمی آواتار hdv212
    تاریخ عضویت
    آبان 1384
    محل زندگی
    قم
    پست
    1,727
    نمونه ای به زبان دات نت داری که اون مشکل رو نداشته باشه ؟؟ (اگه یادت باشه تو پروژه ی من کار نمیکرد، تو پروژه ی جدید هم درست کار نمیکرد)
    جستجو در این مورد زیاد کردم، یه چیزایی هم پیدا کردم ولی علامتهاشو زیاد نتونستم پیدا کنم بعضی هاشو مثل *,^,?,[] رو فهمیدم ولی بقیه شو نتونستم بفهمم، مرجعی هم پیدا نکردم. میشه کمکم کنی ؟
    آخه چطور میشه بهش فهموند که توی جستجو اعراب ها رو در نظر نگیره ؟

  8. #8
    کاربر دائمی آواتار hdv212
    تاریخ عضویت
    آبان 1384
    محل زندگی
    قم
    پست
    1,727
    عزیزم مثل اینکه نمیدونی regular expression دقیقا واسه همین کاره لازم نیست اعراب رو پاک کنی
    ARA جان تا اونجایی که من تو جستجوهام خوندم، بیشتر برای اعتبارسنجی یا validation به کار میره، به هر حال من یه آموزش 50 صفحه ای پیدا کردم که بخونم، مطمئنی نیاز منو براورده میکنه ؟ مرسی

  9. #9
    سلام
    @ hdv212 :
    دوست عزیزم می تونم حدس بزنم در ذهن شما چی میگذره!

    شما می خواهید متن رو در دو فیلد (با اعراب و بی اعراب) ذخیره کنید؟؟ درسته؟؟

    در اینصوررت باید بعرض کنم که مشکلاتی هم خواهید داشت

    1 - مشکل محل اعراب در متن اصلی
    2 - مشکلی که در تاپیک اصلی (در بخش VB.NET) با عنوان مشکل "من" از اون یاد کرده بودم

    توضیح : اگر کاربر کلمه مَن (با فتحه) رو جستجو کنه کلمه مِن (با کسره) هم در لیست نتایج ظاهر میشه.

    برام جای تعجب داره شما چطور نتونستید کد من رو در #C استفاده کنید!!!

    اگر با همون روش مشکل شما حل میشه بفرمایید تا به #C باز نویسیش کنم


    در ضمن در مورد رنگ اعراب حق با محسن خان است!
    اینگونه کاراکتر ها عرض ندارند (!) و روی کاراکتر قبلی چاپ میشن، به همین دلیل در امور گرافیکی و تنظیمات چاپی از کاراکتر قبلی تبعیت می کنند.


    موفق باشید

  10. #10
    کاربر دائمی آواتار ARA
    تاریخ عضویت
    آبان 1383
    محل زندگی
    Bad Sector
    پست
    448
    سلام
    در من انجام شدن این کار با پرل رو 100 % امکان پذیر میدونم چون باهاش کار کردیم با همین متد
    #C نیز از همون pattren Matching و regular expression استفاده میکنه باید بتونه

    در مورد کمک اون چیزی که فکر کنم بدردت بخوره تو این لینکهای پایین میتونی پیدا کنی مشکل بود در خدمتیم

    http://www.radsoftware.com.au/articl...arnsyntax.aspx
    http://www.radsoftware.com.au/articl...xadvanced.aspx
    http://www.windowsdevcenter.com/pub/...harp_0101.html

  11. #11
    کاربر دائمی آواتار hdv212
    تاریخ عضویت
    آبان 1384
    محل زندگی
    قم
    پست
    1,727
    اگر با همون روش مشکل شما حل میشه بفرمایید تا به #C باز نویسیش کنم
    اگه زحمت بکشی تبدیلش کنی ممنون میشم، البته خودم تبدیل کردم، ARA عزیز هم تبدیل کرده ولی سورس نداشت، اگه میشه شما تبدیلش کن و سورسش رو هم بذار. مرسی

  12. #12
    اگه زحمت بکشی تبدیلش کنی ممنون میشم، البته خودم تبدیل کردم، ARA عزیز هم تبدیل کرده ولی سورس نداشت، اگه میشه شما تبدیلش کن و سورسش رو هم بذار. مرسی
    سلام
    من همون کلاس رو در یک پروژه #C استفاده کردم
    http://blackdal.persiangig.com/Sourc...abicSearch.rar

  13. #13
    کاربر دائمی آواتار hdv212
    تاریخ عضویت
    آبان 1384
    محل زندگی
    قم
    پست
    1,727
    BlackDal عزیز من متن عربی شما رو با متن عربی با اعراب کامل عوض کردم، (یکی از دوستان توی همین سایت یه برنامه ی قرآن نوشته بود، من این متن رو از اونجا برداشتم)
    این کامپوننت برای این متن دیگه جواب نمیده، شما هم یه امتحانی بکنید.
    فایل های ضمیمه فایل های ضمیمه

  14. #14
    کاربر دائمی آواتار ARA
    تاریخ عضویت
    آبان 1383
    محل زندگی
    Bad Sector
    پست
    448
    مطمئنی عزیز
    عکس های ضمیمه عکس های ضمیمه
    • نوع فایل: jpg tmp.JPG‏ (31.6 کیلوبایت, 47 دیدار)

  15. #15
    کاربر دائمی آواتار hdv212
    تاریخ عضویت
    آبان 1384
    محل زندگی
    قم
    پست
    1,727
    خب ARA جان شما صراط رو با اعراب هاش . به صورت 'صِرَاطَ' جستجو کردی، از 'صراط' استفاده کن، ببین جواب نمیده

  16. #16
    کاربر دائمی آواتار ARA
    تاریخ عضویت
    آبان 1383
    محل زندگی
    Bad Sector
    پست
    448
    خوب معلومه که جواب نمیده

    من که بهت گفتم و لینکهایی هم واست گذاشتم تا از reqular expression استفاده کنی

تاپیک های مشابه

  1. تغییر ارتفاع lineبا تغییر ارتفاع Textbox در گزارش
    نوشته شده توسط payam59 در بخش Access
    پاسخ: 22
    آخرین پست: یک شنبه 03 شهریور 1387, 15:41 عصر
  2. تغییر اندازه ارتفاع QRShape با تغییر ارتفاع DetailBand
    نوشته شده توسط mojtaba_z در بخش برنامه نویسی در Delphi
    پاسخ: 3
    آخرین پست: پنج شنبه 07 تیر 1386, 07:49 صبح
  3. تغییر Toolbar با تغییر Thems ویندوز XP
    نوشته شده توسط na3er-faraji در بخش VB.NET
    پاسخ: 2
    آخرین پست: پنج شنبه 06 مهر 1385, 12:08 عصر
  4. غیر قابل تغییر کردن فرم about تغییر desktop تو vb
    نوشته شده توسط Payman62 در بخش برنامه نویسی در 6 VB
    پاسخ: 8
    آخرین پست: یک شنبه 31 اردیبهشت 1385, 11:12 صبح
  5. تغییر در PHPbb (تغییرات خیلی کلی)
    نوشته شده توسط nasr در بخش PHP
    پاسخ: 4
    آخرین پست: جمعه 05 فروردین 1384, 12:06 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •