PDA

View Full Version : سوال: جستجو در قرآن



rezaei_y
سه شنبه 17 اسفند 1389, 13:10 عصر
با سلام خدمت تمام دوستان برنامه نویس
من قصد دارم یه برنامه بنویسم که در قسمت جستجو یک کلمه وارد کنم و برنامه بره از اول قرآن آیه هایی که در آنها این کلمه وجود دارد رو پیدا کنه و لیست کنه

برای این کار متن قران رو باید داخل فایل خاصی بنویسم یا داخل دیتا بیس باشه

متد جستجو به چه صورت باید نوشته شه؟
راهنمایی کنید

Hossenbor
سه شنبه 17 اسفند 1389, 13:37 عصر
من هم این مشکل رو دارم البته مشکل من اعراب است برای مثال وقتی کسی جستجو میکند عبارت مورد نظر رو بدلیل داشتن اعراب و عدم تطابق پیدا نمی کند

rezaei_y
سه شنبه 17 اسفند 1389, 22:31 عصر
کسی نیست راهنمایی کنه

من متن کتاب قران را باید با چه فرمتی و کجا قرار بدم

hassan_kahrizy
سه شنبه 17 اسفند 1389, 23:01 عصر
بسمه تعالی با سلام
می تونید با دیتا بیس این کار رو بکنید می تونید با فایل هم اینکار را بکنید

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

ما با همین ساختار نرم افزار تلاوت(نسخه جدید المائده) را نوشتیم

rezaei_y
چهارشنبه 18 اسفند 1389, 00:30 صبح
بسمه تعالی با سلام
می تونید با دیتا بیس این کار رو بکنید می تونید با فایل هم اینکار را بکنید

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

ما با همین ساختار نرم افزار تلاوت(نسخه جدید المائده) را نوشتیم


ممنون از لطفتون

میشه بیشتر توضیح بدین منظورتون چیه که کل کلمات قران را استخراج کنم
نحوه ذخیره سازی داخل دیتا بیس باید به چه صورتی باشه هر آیه یک رکورد باشه یا هر کلمه؟
از فایل استفاده بشه بهتره یا دیتا بیس

اعراب را باید به صورت دستی حذف کرد؟

ممنون میشم راهنمایی کنید

hassan_kahrizy
چهارشنبه 18 اسفند 1389, 09:00 صبح
بسمه تعالی
با سلام
استفاده از دیتابیس کار رو ساده تر می کنه ولی تو برخی موارد مثل بحث انتشار محدودیت هایی هم ایجاد می کنه که ممکنه دردسر ساز بشه

ببینید شما کل متن قرآن رو تو یک فایل متنی بریزید بعد اون رو بخونید توی یک رشته بریزید و با کارکتر space ' ' اون رشته را split کنید حالا شما تمامی کلمات قرآن رو دارید اونها رو تو یک لیست بریزید وتکراری های اون رو حذف کنید
و برای کلمات بدون اعراب کارکتر های اعراب رو از تو کلمات حذف کنید
مثلا من یک فیلد برای کلمه با اعراب ،یک فیلد برای کامه بدون اعراب ساختم حالا میام از لیست آیه هایی که ساختم جستجو می کنم و اگر این کلمه در هر آیه بود اون رو به لیست آیه های اون کلمه اضافه می کنم و در انتها این لیست ایه ها رو به صورت یک فیلد که شماره سوره آیه های آن توسط یک کارکتر از هم جدا شده اند مثل * و سوره *آیه هم با یک کارکتر مثل $ از هم جدا شده اند می سازم

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

rezaei_y
پنج شنبه 19 اسفند 1389, 18:17 عصر
ممنون از راهنمایی که کردید روش جالبی بود

چطور کاراکترهای اعراب رو حذف کنم

Hossenbor
پنج شنبه 19 اسفند 1389, 19:44 عصر
این متنه میتونی اعراب رو string.empty
replace جایگذاری کنید

hassan_kahrizy
جمعه 20 اسفند 1389, 01:25 صبح
بسمه تعالی
با سلام
کافیه کارکتر های اعراب مربوطه را با "" جایگزین کنید
کلیه کارکتر های اعراب:
ً
ٌ
ٍ
َ
ُ
ِ
ّ
ْ
ٓ
ٔ
ٕ
و....


for (int i = 0; i < length; i++)
{
str[i]= str[i].Replace('ُ', "");
}

asif1358
جمعه 20 اسفند 1389, 02:19 صبح
سلام خدمت دوستان گرامی!
دونکته:
اولا برای حذف اعراب چرا این قدر خودتونو به درد سر میندازید! کافیه فایل را با ورد باز کرده و از قسمت Option>Advanced گزینه Diacritics را غیر فعال کرده و فایل خود را ذخیره کنید

دوما راه حل پیشنهاد شده به شدت حجم دیتابیس را بالا می برد؛ دات خودش راهی برای این کار دارد؛ یه سری به این صفحه بزنید همه چی دست تون میاد
http://www.microsoft.com/middleeast/msdn/cpsrt.aspx

hassan_kahrizy
جمعه 20 اسفند 1389, 06:15 صبح
بسمه تعالی
با سلام


سلام خدمت دوستان گرامی!
دونکته:
اولا برای حذف اعراب چرا این قدر خودتونو به درد سر میندازید! کافیه فایل را با ورد باز کرده و از قسمت Option>Advanced گزینه Diacritics را غیر فعال کرده و فایل خود را ذخیره کنید

دوما راه حل پیشنهاد شده به شدت حجم دیتابیس را بالا می برد؛ دات خودش راهی برای این کار دارد؛ یه سری به این صفحه بزنید همه چی دست تون میاد
http://www.microsoft.com/middleeast/msdn/cpsrt.aspx

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