صفحه 1 از 2 12 آخرآخر
نمایش نتایج 1 تا 40 از 46

نام تاپیک: جستجوی متن های دارای اعراب عربی

  1. #1

    جستجوی متن های دارای اعراب عربی

    دوستان سلام
    آیا کسی در رابطه با متن های دارای اعراب تجربه ای دارد؟
    موضوع از این قراره که اگر یک فیلد از متن های اعراب دار داشته باشیم، در هنگام جستجو می خواهم اعراب ها درنظر گرفته نشوند. به عبارت دیگر اگر کاربر مثلا "الحسین" را جستجو کرد "الحُسَین" را هم پیدا کند.
    این کار در MS-Word به طور اتوماتیک انجام میشود (امتحان کنید واقعا من که وقتی فهمیدم واقعا لذت بردم، اساسا این ورد آنقدر کارایی دارد که هرچی آدم ازش میبینه بازم چیزهایی هست که نمیدونه!)
    اول حدس زدم شاید Ignore کردن اعراب رو همه حالیشون میشه (و ورد هم یکی از اون همه) اما دیدم که نه کوئری Select حالیش میشه و نه توابع Replace و Instr و نه حتی Find در ادیتور خود دات نت!!
    لذا ورد خودش داره یه جور کلک میزنه.

    این موضوع در دو دیدگاه باید بررسی بشه، یکی هنگام Select که رکوردهای دارای فلان کلمه را پیدا کنیم و یکی بعد از آوردن و برای HighLight کردن آن لفظ (یعنی در توابعی مثل Replace , Instr).

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

    برای دومی هم که اصلا راهی به ذهنم نرسید که چگونه هنگام نمایش (پس در فیلد دارای اعراب هستیم) بتوانم لفظ کاربر را (که اعراب ندارد) در متن (که اعراب دارد) با توابع Instr یا Replcae پیدا کنم و آن را با چیز دیگری (مثل highlight شده آن) تعویض کنم.

    هر یک از دوستان که بتواند در این دو زمینه کمک کند ممنون میشم.

    با تشکر

  2. #2
    فقط در حد یک سرنخ:
    http://www.barnamenevis.org/sh...ad.php?t=33120
    هر که بر مرکب باطل نشیند ، در سراى پیشمانى فرودش مى‏آورند

  3. #3
    سلام
    ظاهرا در اون تاپیک، مشکل من مشکل شما هم بوده، خوب خودتون چه کار کردید؟
    جوابهای اون تاپیک رو نتونستم مورد استفاده قرار بدم (مقاله هاش که یکیش باز نشد و یکیش در VisualFoxPro بود که قبلا تو MSDN دیدم که ظاهرا گفته بود خودش Diacratics (اعراب) رو حالیش میشه. نامه الکترونیکی موجود هم که فقط طرح سوال بود نه جواب)

    ممنون

  4. #4
    سلام
    من هنوز منتظر جوابم.

  5. #5
    کاربر دائمی آواتار Microsoft.net
    تاریخ عضویت
    آبان 1382
    محل زندگی
    مشهد
    پست
    584
    موقعی که sql نصب میشه (2000) در یک مرحله سوال میکنه که حساسیت در کد پیج به چه صورت باشه مثلا case sensetive,accent sensetive,... و چند تا option دیگه که حدس میزنم اونی که شما می خواهید توش هست . فقط نکته این که بعد از نصب sql دیگه نمیتونید اونا رو تغییر بدید چون موقع نصب بانک Master با اونها کد میشه و تغییرش بعدا موجب ایجاد اشکال خواهد شد . در نتیجه دوباره باید Sql رو نصب کنید ...

  6. #6
    کاربر دائمی آواتار Ner'zhul Arthas
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    پشت کامپیوتر
    پست
    180

    Talking

    من با وی بی 6 یه برنامه قرآن با 6 ترجمه نوشتم. برای جست و جو در اول برنامه بغیر از داشتن متن اصلی قرآن یه متن بدون اعراب هم در رم گرفتم.
    من از پایگاه های داده استفاده نمیکنم.

    برنامه قرآن رو خط به خط (آیه به آیه) که می خوند یکی به آرایه ی اصلی میداد یکی هم با فانکشن زیر اعرابش رو برمیداشت و به آرایه ی بدون اعراب میداد.

    شکل دات نتش:


    Private Function Trim_O(ByVal i As String) As String
    i.Replace("ً", "")
    i.Replace("ُ", "")
    i.Replace("ٍ", "")
    i.Replace(",", "")
    i.Replace("َ", "")
    i.Replace("ِ", "")
    i.Replace("ّ", "")
    i.Replace("ء", "")
    i.Replace("ْ", "")
    i.Replace("ٌ", "")
    i.Replace("آ", "ا")
    i.Replace("إ", "ا")
    i.Replace("أ", "ا")
    i.Replace("ة", "ه")
    Return i
    End Function


    بعد برای جست و جو تو آرایه ی بدون اعراب میگشت ولی جواب رو در آرایه ی با اعراب میداد.

    برای این که کاربر با اعراب نوشت باز هم نتیجه بده میتونید فانکشن رو برای ورودی که از کاربر میگیرید هم استفاده کنید.

    روش دیگه هم اینه که کلی این متن رو در حافظه رم یا هارد نریزید بلکه در خود جست و جو قبل از جست و جوی هر فیلد یه نمونه از اون فیلد گرفته و اون رو با فانکشن تمیز کنید و بعد توش بگردید.

  7. #7
    ببخشید مشکلی پیش اومده بود که این تاپیک رو ندیدم، به هر حال، چند راه حل بهم پیشنهاد شد اما هیچ کدوم رضایت کارفرما رو تامین نکرد، فکر می کنم SQL Server 2005 یا خودش یا با یک پک جانبی بتونه این کار رو انجام بده، البته اصلا مطمئن نیستم. آقای ثباتی اگر چنین چیزی وجودداشته باشه قطعا در جریان هستند. پس سوالتون رو توی بخش SQL Server مطرح کنید.

    ضمن اینکه چند تا امکانی که به دات نت 2 و SQL Server 2005 اضافه شده، به نظرم کمک های بسیار خوبی خواهند بود. من خودم تجربه ای نداشتم اما مطمئن هستم که امکانش وجود داره.

    مثلا یک چنین سناریویی:
    اگر بشه با استفاده از Regex دات نت یک Managed Stored Procedure نوشت که در زمان اجرا این کار رو انجام بده با توجه به (varchar(Max، قطعا پاسخ مناسب تری نسبت به SQL Server 2000 خواهید گرفت.

    البته چون پرسیدید، پروژه ما در نهایت با ذخیره 2 نمونه از متن انجام شد. یک علت مهمش ناتوانی Index کردن در غیر این صورت بود.
    هر که بر مرکب باطل نشیند ، در سراى پیشمانى فرودش مى‏آورند

  8. #8
    سلام
    1- از همه بزرگواران ممنون که پیگیری می کنند.
    2- من که خیلی تو دات نت و MSDN گشتم اما راه حل حسابی یافت می نشود (یا لااقل من یافت می نکردم همی)
    3- اصلا فرض کنیم که بحث جستجو با همون دو بارذخیره (با اعراب و بی اعراب) حل شد (که فعلا راه بهتری پیدا نکردم) اما مشکل بعدی را چه طور حل کنیم. مشکل اصلی تو نمایشه که باید متن با اعراب نمایش داده بشه. دیگه اونجا مثلا برای اینکه متنی که کاربر جستجو کرده بود رو HighLight کنیم، باید اول اون رو (البته تو همون اعراب دار) پیدا کنیم و واضحه که دیگه نمیشه تو بی اعرابه پیداش کرد چون محل یک کلمه در با اعرابه و در بی اعرابه متفاوتند (به خاطر اعراب) و ما می خواهیم متن با اعراب رو HighLight کنیم و به کاربر به عنوان نتیجه جستجویش نشان دهیم.
    4- اگر نظری دارید ممنون میشم بدونم.
    5- ممنون

  9. #9
    کاربر دائمی آواتار meh_secure
    تاریخ عضویت
    دی 1383
    محل زندگی
    California
    پست
    964
    به نظر من هم بهتره اعراب رو از متن حذف کنید. یعنی 2 بار ذخیره کنید. یکی با اعراب یکی بدون اعراب

  10. #10
    نقل قول نوشته شده توسط meh_secure مشاهده تاپیک
    به نظر من هم بهتره اعراب رو از متن حذف کنید. یعنی 2 بار ذخیره کنید. یکی با اعراب یکی بدون اعراب
    سلام
    خوب!! برای مشکلی که تو پست قبل گفتم چی؟!!


    (راستی تولد 500 پستگی ام هم مبارک، هی می خواستم به 500 نرسه (آخه ستاره هاش که سبز و آبی قاطی بودند قشنگ تر بود تا الان که یه دست آبی شدند) آخرم نشد.)

  11. #11
    کاربر دائمی آواتار Ner'zhul Arthas
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    پشت کامپیوتر
    پست
    180
    یه روش دیگه هم هست.
    اینکه اعراب رو جدا کنید و ذخیره کنید.
    (متن با اعراب نه ها، اعراب خالی)
    متن بدون اعراب هم جدا ذخیره کنید.

    در جست و جو بدون اعراب رو میگرده. و وقتی میخواست نشون بده روش اعراب رو میچسبونه.
    وقتی هم که طرف اعراب گذاشت باز همون جست و جو رو انجام میده ، از میان یافته ها اعراب گذاری میکنه و میگرده ، و یافته ها رو نشون میده.

    روش دیگه هم اینه که سیستم جست و جو رو خودتون بنویسید(کاراکتر به کاراکتر بگرده)

    اینطوری متونید کاری کنید که وقتی طرف گشت دنبال " کَرم "
    همه ی اینا رو پیدا کنه:{ کَرَم ، کَرَمَ ، کَرم ، کَرُم و ... }

  12. #12
    کاربر دائمی آواتار meh_secure
    تاریخ عضویت
    دی 1383
    محل زندگی
    California
    پست
    964
    نقل قول نوشته شده توسط niloufar مشاهده تاپیک
    سلام
    خوب!! برای مشکلی که تو پست قبل گفتم چی؟!!


    (راستی تولد 500 پستگی ام هم مبارک، هی می خواستم به 500 نرسه (آخه ستاره هاش که سبز و آبی قاطی بودند قشنگ تر بود تا الان که یه دست آبی شدند) آخرم نشد.)
    به اون موضوع دقت نکرده بودم. اما فکر می کنم Full text indexing در SQL Server بتونه کمکت کنه. در موردش تحقیق کن . معمولا این سرویس که اشاره کردم هم خانواده ی کلمات رو هم پیدا می کنه. شاید در مورد اعراب هم جواب داد.

    راستی در مورد ستاره های سبز و آبی هم یه پیشنهادی دارم:
    جساراتا البته : یکی دو تا از پست های بیهودمون رو حذف کنیم.

  13. #13
    نقل قول نوشته شده توسط Ner'zhul Arthas مشاهده تاپیک
    یه روش دیگه هم هست.
    اینکه اعراب رو جدا کنید و ذخیره کنید.
    (متن با اعراب نه ها، اعراب خالی)
    متن بدون اعراب هم جدا ذخیره کنید.

    در جست و جو بدون اعراب رو میگرده. و وقتی میخواست نشون بده روش اعراب رو میچسبونه.
    وقتی هم که طرف اعراب گذاشت باز همون جست و جو رو انجام میده ، از میان یافته ها اعراب گذاری میکنه و میگرده ، و یافته ها رو نشون میده.

    روش دیگه هم اینه که سیستم جست و جو رو خودتون بنویسید(کاراکتر به کاراکتر بگرده)

    اینطوری متونید کاری کنید که وقتی طرف گشت دنبال " کَرم "
    همه ی اینا رو پیدا کنه:{ کَرَم ، کَرَمَ ، کَرم ، کَرُم و ... }
    سلام
    1- آخه چه طور ممکنه اعراب ها رو جدا نگه داشت و بعدا دقیق سر جاشون چسبوند، با توجه به اینکه حروف لزوما همشون اعراب ندارند و یادداشت آدرس ها هم علاوه بر احتمال بالای باگ، سرعت رو هم در برگرداندن پایین میاره.
    2- خودمون جستجو را حرف به حرف انجام بدیم هم که علاوه بر اینکه حتما غیر بهینه و لذا با سرعت پایینتر خواهد بود، دردی از مشکل اخیر دوا نمیکنه و به درد مشکل جستجو می خوره که تا حالا بهترین راهش دوبار ذخیره کردن (با اعراب و بی اعراب) بوده. اما مشکل اصلی سر نمایش و Highlight کردنه.

  14. #14
    نقل قول نوشته شده توسط meh_secure مشاهده تاپیک
    به اون موضوع دقت نکرده بودم. اما فکر می کنم Full text indexing در SQL Server بتونه کمکت کنه. در موردش تحقیق کن . معمولا این سرویس که اشاره کردم هم خانواده ی کلمات رو هم پیدا می کنه. شاید در مورد اعراب هم جواب داد.
    ممنون، تا حالا که به هر جا زدم، انواع هم خانواده ها را دارند جز Ignore کردن اعراب.

    نقل قول نوشته شده توسط meh_secure مشاهده تاپیک
    راستی در مورد ستاره های سبز و آبی هم یه پیشنهادی دارم:
    جساراتا البته : یکی دو تا از پست های بیهودمون رو حذف کنیم.
    خوب اینم یه راهه! اما:
    1- اینقدر من قوی صحبت میکنم که پست بیهوده برا ما بی معنیه :-) => کلی تحویل گرفتما!!
    2- حالا به یکی دو تا پست پاک کردن هم، با یکی دو تا پست بعدی به همین روز می افتم
    3- حالا اگه همش پاک کنیم، کی ما هم مثل شما طلایی-قرمز بشیم؟!! :-)
    4- ممنون



    اما دوستان اگه بازم راحی به نظرشون رسید، ممنون میشم.

  15. #15
    کاربر دائمی آواتار Ner'zhul Arthas
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    پشت کامپیوتر
    پست
    180
    نقل قول نوشته شده توسط niloufar مشاهده تاپیک
    سلام
    1- آخه چه طور ممکنه اعراب ها رو جدا نگه داشت و بعدا دقیق سر جاشون چسبوند، با توجه به اینکه حروف لزوما همشون اعراب ندارند و یادداشت آدرس ها هم علاوه بر احتمال بالای باگ، سرعت رو هم در برگرداندن پایین میاره.
    2- خودمون جستجو را حرف به حرف انجام بدیم هم که علاوه بر اینکه حتما غیر بهینه و لذا با سرعت پایینتر خواهد بود، دردی از مشکل اخیر دوا نمیکنه و به درد مشکل جستجو می خوره که تا حالا بهترین راهش دوبار ذخیره کردن (با اعراب و بی اعراب) بوده. اما مشکل اصلی سر نمایش و Highlight کردنه.
    1.وقتی حروف غیر اعراب رو به اسپیس تبدیل کنید مشک حل میشه نیاز به آدرس نویسی و غیره هم نداره.
    و میتونید تو این روش هر کاری میخواید با اعراب بکنید.
    سرعتش هم خیلی فرق نمیکنه.

    2. نه تنها غیر بهینه نیست خیلی هم قوی تره.
    در مورد سرعتش هم تو وی بی 6 کل قرآن رو در حد اکثر 6 ثانیه میگشته که با دات نت خیلی هم سریعتره.
    حالا چه برنامه ای هست که دارید مینویسید؟
    یعنی حروفش بیشتر از قرآنه؟
    تعداد حروف قرانی که من استفاده میکنم با اعراب حدود 700000 حرفه.

  16. #16
    نقل قول نوشته شده توسط Ner'zhul Arthas مشاهده تاپیک
    1.وقتی حروف غیر اعراب رو به اسپیس تبدیل کنید مشک حل میشه نیاز به آدرس نویسی و غیره هم نداره.
    و میتونید تو این روش هر کاری میخواید با اعراب بکنید.
    سرعتش هم خیلی فرق نمیکنه.

    2. نه تنها غیر بهینه نیست خیلی هم قوی تره.
    در مورد سرعتش هم تو وی بی 6 کل قرآن رو در حد اکثر 6 ثانیه میگشته که با دات نت خیلی هم سریعتره.
    حالا چه برنامه ای هست که دارید مینویسید؟
    یعنی حروفش بیشتر از قرآنه؟
    تعداد حروف قرانی که من استفاده میکنم با اعراب حدود 700000 حرفه.
    سلام
    1- ممنون
    2- ببخشید خیلی وقت بود این جاها نبودم که جواب بدم.
    3- من هنوز نمی فهمم منظور شما از ذخیره جداگانه اعراب (حتی با روش اسپیس گذاری که گفتید) چیه و به چه درد مشکل من می خوره. مثلا:
    فرض کنید من در این متن "السَّلامُ عَلَیکَ یا أبا عبدالله" می خوام جستجو کنم در مورد "علیک یا ابا"
    خوب، من میام متن جستجو را در فیلد بدون اعراب میگردم و این رکورد را پیدا میکنم. حال میخوام "عَلَیکَ یا أبا" را highlight کنم در حالی که متن کاربر "علیک یا ابا" بود. چه جوری بیام در فیلد با اعراب ("السَّلامُ عَلَیکَ یا أبا عبدالله") متن بی اعراب را جستجو و پیدا کنم تا آن را HighLight کنم؟

  17. #17
    کاربر دائمی آواتار Ner'zhul Arthas
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    پشت کامپیوتر
    پست
    180
    اگر متن با اعراب همش در حال نمایش دادنه نمیشه از این روش استفاده کرد.
    و فایدش هم نسبت به بقیه روش ها اینکه که اگر طرف یکی از اعراب رو مشخص کرد بقیه ی اعراب ها رو میشه ندیده گرفت.

    بهتره از همون روش آخری استفاده کنید. هم خفن تره هم لذت بخش تره نوشتنش.

    در ضمن جست و جو در متنی که در متغیری در رم باشه خیلی سریع تره تا این که روی هارد باشه یا تو تکست باکس یا ریچ تکست باکس یا ... .

  18. #18
    سلام
    1- بازم ممنون
    2- ببینید من می خوام یه چیزی تو مایه های اونی که تو پست قبل مثال زدم رو انجام بدم، شما از هر روشی که فکر میکنید بشه تو یه متن کلمات اعراب دار را از متن جستجوی بی اعراب پیدا کرد، تا همشونو بتونم highlight کنم برام توضیح بدید. ممنون
    3- اون قرآن که گفتید، آیا همه متن قرآن رو دارید، می تونم ازتون بخوام بهم بدید جهت استفاده شخصی؟

  19. #19
    کاربر دائمی آواتار Ner'zhul Arthas
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    پشت کامپیوتر
    پست
    180

    Talking

    نقل قول نوشته شده توسط niloufar مشاهده تاپیک
    سلام
    1- بازم ممنون
    2- ببینید من می خوام یه چیزی تو مایه های اونی که تو پست قبل مثال زدم رو انجام بدم، شما از هر روشی که فکر میکنید بشه تو یه متن کلمات اعراب دار را از متن جستجوی بی اعراب پیدا کرد، تا همشونو بتونم highlight کنم برام توضیح بدید. ممنون
    3- اون قرآن که گفتید، آیا همه متن قرآن رو دارید، می تونم ازتون بخوام بهم بدید جهت استفاده شخصی؟
    بهترین روشی که میشناسم اینه که کاراکتر به کاراکتر بگرده.

    اون برنامه ی قرآن رو هم یه تغییراتی توش میدم میذارم برای همه که دانلود کنن.
    هر وقت گذاشتم خبرتون میکنم.

  20. #20
    نقل قول نوشته شده توسط Ner'zhul Arthas مشاهده تاپیک
    اون برنامه ی قرآن رو هم یه تغییراتی توش میدم میذارم برای همه که دانلود کنن.
    هر وقت گذاشتم خبرتون میکنم.
    سلام
    یادتون نرفته؟!!

  21. #21
    کاربر دائمی آواتار Ner'zhul Arthas
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    پشت کامپیوتر
    پست
    180
    نه دارم به دات نت تبدیلش میکنم که زیاد نمونده تا تموم شه.

  22. #22

  23. #23
    کاربر دائمی آواتار Ner'zhul Arthas
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    پشت کامپیوتر
    پست
    180
    حامد جان این برنامه که نوشتید وقتی در "...انا..." ، "اا" رو بگردیم "انا" رو میاره.

  24. #24
    سلام
    من که روی این کامپیوتر VS.NET ندارم تست کنم.
    اما من این برنامه رو مجدداً نوشتم و آپلود کردم (دیروز) و قسمت های تشخیص اعراب رو هم بهش اضافه کردم
    می تونید از همون لینک بالایی دانلود کنید
    گمان کنم درست کار کنه (اگر هم نکنه بفرمایید تا تصحیح کنم)

  25. #25
    سلام
    آقای مصافی!
    1- واقعا ممنون
    2- اگه متن جستجو خودش اعراب داشته باشه، نمیاره که خوب معلومه چرا. من اومدم یه تابع مثل تابع IsTextSame شما اینطوری نوشتم:

    Private Function DelDiacratics(ByVal sArabic As String) As String
    Dim tmpSimple As String = sArabic

    tmpSimple = tmpSimple.Replace("ً", "") 'تنوین نصب
    tmpSimple = tmpSimple.Replace("ٌ", "") 'تنوین رفع
    tmpSimple = tmpSimple.Replace("ٍ", "") 'تنوین جر
    tmpSimple = tmpSimple.Replace("َ", "") 'فتحه
    tmpSimple = tmpSimple.Replace("ُ", "") 'ضمه
    tmpSimple = tmpSimple.Replace("ِ", "") 'کسره
    tmpSimple = tmpSimple.Replace("ّ", "") 'تشدید

    Return tmpSimple
    End Function


    و تابع SearchText شما را هم اینطوری عوض کردم:

    Public Function SearchText(ByVal SearchTerm As String) As Boolean
    Dim RegexSearchTerm As String = CreateRegxForSearch(DelDiacratics(SearchTerm))

    res = Regex.Match(_Text, RegexSearchTerm)

    If res.Success AndAlso IsTextSame(res.Value.Trim, DelDiacratics(SearchTerm)) Then
    _Index = res.Index
    _Lenght = res.Length

    Return True
    Else
    Return False
    End If
    End Function



    در اینصورت برای مثل "اهدِنا" درست شد ولی چرا برای مثل "اَلحَمدُلِله " جواب نمیده؟

  26. #26
    3- اصلا دلیل استفاده از

    AndAlso IsTextSame(res.Value.Trim, SearchTerm)

    چیه؟!! مگه برخی وقتها چیز الکی پیدا میکنه؟!

    4- Patternهای RegExp رو کجا دقیق توضیح داده؟! آیا این ".?" همیشه برای Diacratics است؟
    5- بازم ممنون

  27. #27
    سلام نیلوفر خانم
    1- خواهش می کنم
    2- همونطری که قبلاً عرض کردم این فقط یک کد سریع التولید نمونه بود, انشاالله کاملترش می کنم
    برای کلمات فاصله دار جواب نمیده (این مشکل رو رفع کردم و بعد از رفع مشکل اول کد رو مجدداً آپلود می کنم)
    3- اگر بین هر دو حرف متن مورد جستجو چیزی وجود داشته باش (حتی غیر از اعراب) بازم در نتیجه جستجو نشون میده
    4- نمی دونم کجا توضیح داده! سعی می کنم در آینده نزدیک در وبلاگم بنویسم. البته در
    وبلاگ دوست عزیزم امیر خان تقدسی می تونید ابزار جالبی در این رابطه پیدا کنید
    http://palizeblog.blogsky.com/

    5- بازم خواهش می کنم, سورس بعدی رو امشب یا فردا آپلود می کنم

  28. #28
    سلام
    نیلوفر خانم@ :
    در روش شما:
    در هنگام جستجوی کلمه "مَن" کلمه "مِن" هم در لیست نتایج قرار می گیرد!

    الان که دارم روی برنامه کار می کنم جستجو روی کلمه ای مانند "اَلحَمدُلِله " هم به خوبی کار می کنه

    Pattern های RegExp رو کجا دقیق توضیح داده؟! آیا این ".?" همیشه برای Diacratics است؟
    در پست پیش یادم رفت بگم. نقطه برای کاراکترهای غیر فاصله ای به کار میره (به همین خاطر تابع IsTextSame رو نوشتم) و علامت سوال مشخص کننده اینه که صفر با یک مورد می تونند در این موقعیت قرار بگیرند.


    همچنان می تونید از لینک قبلی سورس رو دانلود کنید
    http://blackdal.persiangig.com/Sourc...ArabicText.rar

  29. #29
    سلام

    1- در مورد دوتا اعرابی ها چی؟ (مثلا تشدید و فتحه باهم)
    2- برای کوئری هم میشه از این روش استفاده کرد (بجای دوفیلد فرض کردن که ما در پیش از این ها گفتیم)؟ سرعت پایین نمیاد؟
    آخرین ویرایش به وسیله titbasoft : یک شنبه 13 اسفند 1385 در 18:10 عصر دلیل: استفاده از کلید تشکر لطفا

  30. #30
    سلام
    1- این مورد باید مرتفع بشه (در نسخه ای که آپلود کردم این امکان نیست)

    2 - مسلماً سرعت پایین میاد
    اما در مورد ثبت جداگانه...
    اگر قراره تا متن بدون اعراب رو ذخیره کنید یعنی اینکه دارید عملاً اعراب رو کنار می ذارید (مسئله "مَن" و مِن")
    در مورد مشکل محل اعراب (که در پست های پیشین بهش اشاره فرمودید) می خواین چی کار کنین؟

    نمی دونستم برای جستجو در پایگاه داده این کد رو می خواین, در هر صورت برای پایگاه داده باید از یک روش دیگه استفاده کرد.
    کد اون رو هم به زودی آپلود می کنم

  31. #31
    کاربر دائمی آواتار Ner'zhul Arthas
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    پشت کامپیوتر
    پست
    180
    قرآن رو آپلود کردم:
    http://www.barnamenevis.org/sh...320#post315320

    اگر میخواید از روش جست و جوش استفاده کنید یه تغییراتی باید توش بدید.

  32. #32
    سلام دوست عزیز
    از بابت سورستون ممنون
    ولی در مورد جستجو در صورتی که کلمه مورد جستجو هم دارای اعراب باشه کار نمی کنه.
    در ضمن نیلوفر خانم من سورسم رو آپدیت کردم (همون لینک قبلی)

  33. #33
    آقای منافی
    این پست واسه دیروز بود (قبل از آپلود جدید شما) که پست نشده بود ولی چون saveش رو داشتم و مطالب خوبی هم داشت گفتم دوباره بذارم:

    سلام
    1- در واقع اطلاعات که مثل همیشه در بانک هستند. لذا همونطور که در پست های اولیه هم اشاره شده، دو مرحله لازم است. یکی استخراج (و کوئری) از بانک (یعنی چه رکوردهایی متن مورد جستجو را در فلان فیلد خاص دارند) و سپس نمایش HighLight شده اونها.
    2- اون بحث ذخیره متن بدون اعراب دقیقا مشکل "مَن" و "مِن" رو داره و ضمنا به درد مرحله دوم هم نمیخوره که در پست های پیش هم بهش اشاره شد.
    3- سورس کد شما (البته پس از اینکه زحمت حل مشکلاتش رو کشیدید، اگه حمل بر پر توقعی نشه) مرحله دوم را کاملا حل میکنه، لذا اگر راهی هم (غیر از تکرار با فیلد بدون اعراب) به نظرتون میرسه (که البته در سرعت هم تاثیر زیادی نذاره) ممنون میشم.
    4- در مورد سورس فعلی هم چیزهایی که به ذهنم میرسه (اگه زحمتتون نمیشه) یکی همون بحث دواعرابی ها است و دیگری بحث کاراکترهای جایگزین فارسی (به عنوان مثال اگر در متن "ألحمد" یا "إهدنا" بود و کاربر "الحمد" یا "اهدنا" رو سرچ کرد، باید جواب بگیره. یا مثلا اگر به جای "کتابی" "کتابی" را زد یا بجای "ایاک" زد "ایاک" باز هم باید نتیجه بگیره و نمایش داده بشه.)
    5- ممنون

  34. #34
    اما امروز

    6- از بابت تغییراتی که در جهت استفاده از DB دادید ممنون اما:
    7- هنوز مشکل دواعرابی که باقیه
    8- بد نیست یه سری دیگه از اعراب ها رو هم به لست اعراب هاتون اضافه کنید مثل سکون یا الف مقصوره و ...
    9- اون بحث کاراکتر های جایگزین فارسی که در شماره 4 به آن اشاره شد هم مهم هستند
    10- در مورد اینجور جستجو در DB که شما استفاده کردید، فکر نمیکنید در داده های زیاد، خیلی سرعت را پایین بیاورد؟
    11- راستی در این خط

    tmpDatatable.Rows.Add(i, _Datatable.Rows(i).Item("sArabic"))

    از i+1 به جای i استفاده کنید.
    11- سوالی که از قبل در مورد DataSet تو ذهنم بود (که ربطی هم به بحث این تاپیک نداره و فقط چون تو سورس شما هم دیدم هست دوباره یادم افتاد) اینه که Auto Increment در DataSet و بانک به هم وصل نیستند. به عنوان مثال اگر شما در سورس خودتون بیایید و در لبه دوم، چند بار روی AddNew بایید و بروید بیرون و دوباره بیایید، هر بار یکی به Id اضافه میشود. حال پس از اینکه چند بار الکی Id را بالا بردید (بدون افزودن رکورد)، یک رکورد واقعی اضافه کنید و آن را ذخیره کنید. Id مثلا از 8 رفته به 20 اما اگر بدون خروج به لبه سوم بروید و همین رکورد آخر که اضافه کردید را جستجو کنید، Id برابر 9 است. به عبارت دیگه Id در DataSet نگاه نمی کنه به Id در بانک. بدتر از این وقتی است که در بانک آخرین Id شما مثلا 15 باشه ولی پس از آن در بانک چند Id اضافه و پاک شده باشد. در اینصورت شما در DataSet که میخواید یه چیز اضافه کنید به شما میگه Id اش 16 است ولی وقتی در بانک ذخیره میشه با Id مثلا 20 ذخیره میشه. راهی براش سراغ دارید یا تو یه تاپیک جدا مطرحش کنم؟

  35. #35
    کاربر دائمی آواتار Ner'zhul Arthas
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    پشت کامپیوتر
    پست
    180
    نقل قول نوشته شده توسط BlackDal مشاهده تاپیک
    سلام دوست عزیز
    از بابت سورستون ممنون
    ولی در مورد جستجو در صورتی که کلمه مورد جستجو هم دارای اعراب باشه کار نمی کنه.
    در ضمن نیلوفر خانم من سورسم رو آپدیت کردم (همون لینک قبلی)
    شما چی رو جست و جو کردید که کار نمیکنه؟

  36. #36
    سلام
    ظاهرا من هم تست کردم، متون اعراب دار را هم جستجو میکرد.

  37. #37
    سلام
    من الرَّحِیمِ و السَّماءُ و چند کلمه دیگه رو که از خود متن کپی کرده بودم رو جستجو کردم.
    اما نتیجه ای در بر نداشت. البته در مورد برنامهش ما بهتره تو همون تاپیک صحبت کنیم.

    @خانم نیلوفر :
    اقای منافی کیه؟ بنده مصافی هستم سرکار خانم!

    1- نحوه Hilight شدن که در برگه اول برنامه استفاده شده. ضمناً در این آپدیت محل و طول عبارت یافت شده رو هم اضافه کردم.
    2- دقیقاً
    3-
    4- بحث دو اعرابی که حل شده (نمی دونم شما آخرین نسخه رو دانلود کردید یا نه) در مورد کاراکترهای جایگزین هم در برنامه گنجانده خواهد شد.
    5- خواهش می کنم
    6- خواهش مجدد
    7- نسخه آتی انشاالله
    8- این کاراکتر ها رو من روی کیبورد پیدا نکردم در Charachter Map هم جیزی پیدا نکردم. نمی دونم از کجا باید کپی کنم.
    9- حتماً
    10- چرا، این دقیقاً فکریه که می کنم. اما فعلاً راه دیگه ای به ذهنم نمی رسه. نمیشه این تابع رو به زبانی که برای DBMS قابل فهم باشه ترجمه کرد.
    11- حق با شماست
    12- طبق فرمولی که فرمودید تست کردم و مشکلی ندیدم. یا من اشتباه تست کردم یا شما به ظور کامل توضیح ندادید

  38. #38
    کاربر دائمی آواتار Ner'zhul Arthas
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    پشت کامپیوتر
    پست
    180
    منظورم متون دارای دو اعراب بود.
    بازم نفهمیدم یعنی چی.

    میشه یه کپی از چیزی که میگید بذارید اینجا.

  39. #39
    سلام
    1- بعد از یک ماه گفتم دوباره بیام سراغ این تاپیک
    2- آقای مصافی (البته که منافی، نه!! اشتباه لپی بود، منافی نام فامیل یکی از همدانشگاهی هایم بود)، هَفَشتا کاری که فرموده بودید، انجام شد؟
    3- بازم آقای مصافی، در مورد اون 12 ایه، ظاهرا اشتباه تست کردید، چون از وجود این مشکل مطمئنم (چون اصلا مشکل قدیمی درون افکارم بودندی). اصل مشکل اینه که اگه تو بانک ماکزیمم Id موجود از Idای که الان قراره اختصاص داده بشه، چند تا کوچکتر باشه (یعنی چند تا رکورد بعد از آخرین رکورد فعلی حذف شده باشه) در اینصورت، مشکل ذکر شده ایجاد خواهد شد. مورد دیگر مشکل هم همونجا گفته ام.

  40. #40
    سلام
    آقای مصافی! چی شد؟

صفحه 1 از 2 12 آخرآخر

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

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