PDA

View Full Version : جستجو بین 200 فایل متنی



ghaem-soft
جمعه 18 تیر 1395, 15:42 عصر
سلام
من حدود 200 فایل متنی با فرمت txt دارم که تو هر فایل متنی یک کتاب قرار داره
متن تمامی کتاب ها عربی است
تنها کاری که می خوام انجام بدم این است که در بین این کتاب ها جستجو کنم
البته این کار را هم انجام دادم
در زمانی که تازه برنامه نویسی یاد داشتم با 2737 خط کد نویسی
با کد هایی کاملا غیر بهینه
200 تا آرایه تعریف کردم
و هر خط فایل متنی را در یک آرایه قرار دادم
به هر حال برنامه را ساختم
(چون کتاب ها از خودم نیست نمی تونم اینجا پروژه رو براتون آپلود کنم)
الان در حدود 10 تا 20 ثانیه طول یک کلمه را پیدا می کند
به هر حال کسی می تونه کمکم کنه
یک راه آسون که به سرعت بین این همه متن جستجو کنم؟؟؟

Hossis
یک شنبه 20 تیر 1395, 11:48 صبح
البته جستجو در فايل متني کمي سخت هست، ولي راهش اين نيست که شما رفتيد.
با ده خط کد هم مي شه تو فايل متني جستجو کرد
اول: فايلها رو در يک پوشه خاص بريزيد
دوم: اين فايلها رو در يک آرايه قرار دهيد به اين صورت:
dim Files() as string =io.directory.getfiles("d:\books")
سوم: با يک حلقه، در تک تک اين فايلها جستجو کنيد.
dim FileStr as string
for each fn as string in files
filestr=io.file.readalltext(fn)
if filestr.contains(txtSearch.text) then
ListFind.items.add(fn)
end if
next
و تمام ...


اگر باز هم مشکلي بود در خدمتيم

ghaem-soft
یک شنبه 20 تیر 1395, 18:51 عصر
سلام
خیلی ممنون از پاسختون
کد هاتون خیلی منطقی هستند
ولی برای من کار نکرد
زیرا متن من رو به صورت ؟؟؟؟ می خونه
سرعت برنامه هم پایین است به مدت ۶ ثانیه هنگ میکنه
اگه فایل ها رو در دیتا بیس قرار بدم سرعت افزایش پیدا میکنه ؟؟

gilsoft
دوشنبه 21 تیر 1395, 07:16 صبح
ولی برای من کار نکرد
زیرا متن من رو به صورت ؟؟؟؟ می خونه

سلام دوست عزیز

اول اینکه: فایل txt رو به شکل زیر ( یعنی بصورت UTF-8 ) ذخیره کن:

141373

دوم اینکه: کد زیر
FileStr = IO.File.ReadAllText(fn)
به این شکل تغییر بده:
FileStr = IO.File.ReadAllText(fn, System.Text.Encoding.UTF8)

سوم اینکه: حرف "ی" در فایل متنی شما بصورت "ﻱ" می‌باشد .. احتمال اینست که در بعضی از سیستمها کلمه‌ی "ایاک" را نتواند جستجو کند.

موفق باشید .....

gilsoft
دوشنبه 21 تیر 1395, 08:22 صبح
اگه فایل ها رو در دیتا بیس قرار بدم سرعت افزایش پیدا میکنه ؟؟

سلام مجدد

بله .. سرعت خیلی افزایش پیدا می‌کنه

اینم عرض کنم که: سرعت جستجو در دیتابیس Access و SQL فرق می‌کنه ( SQL هم سرعتش خوبه و هم امکاناتش )

موفق باشید .....

ghaem-soft
دوشنبه 21 تیر 1395, 18:00 عصر
خیلی ممنون
ولی من هر چی سورس sql دارم و تو تاپیک ها جستجو کردم همش یا خطا می ده یا اشتباه است
شما یک سورس جستجو دارید که کاملا درست باشه
اگر جستجو با اعراب عربی هم داشته باشه که نور علی نور میشه
باز هم تشکر