جستجو در لیست باکس از طریق ارتباط با فایل متنی

Niloofar_222

New Member
جستجو در لیست باکس از طریق فایل های Html

سلام
من مطالب مختلفی رو در زمینه جستجو دیدم ولی ولی مطلب مورد نظر خودم رو پیدا نکردم، برای همین پست زدم.

من نزدیک به 40 صفحه بصورت عکس دارم که در 40 صفحه وجود دارند. یک لیست باکس هم دارم که شامل 40 آیتم هست که با انتخاب هر کدوم از این آیتم ها به صفحه مورد نظر هدایت میشم. یعنی مثلا با انتخاب آیتم 20 وارد صفحه بیستم میشم. حالا بالای این لیست باکس یک کادر Input Box گذاشتم که آیتم های List Box رو باهاش جستجو میکنم، آیتم هایی که به نحوی مختصر به عنوان صفحه مربوطه اشاره میکنند، خب تا اینجای کار مشکلی نیست، یعنی من فقط از طریق عناوین آیتم ها میتونم جستجو کنم، یعنی کلمات خیلی خیلی کلیدی در حد یک تا سه کلمه.

اما سوالی که دارم اینه:
من میخوام بصورت Index گذاری به جستجو بپردازم. فرض کنید که من میخوام کلمه کلیدی ای که داخل Input Box قرار داره در کل متن 40 صفحه جستجو بشه و به این ترتیب آیتم هایی که مرتبط با این کلمه کلیدی هستند Like بشن، خب من میدونم که عکس قابل جستجو نیست، با توجه به این قضیه باید 40 فایل Txt یا Ini به ترتیب برای درج محتویات 40 صفحه تصویری ایجاد کنم. حالا مشکلی که دارم اینه که با نوشتن یک آیتم در Input Box چطور میشه این کلمه کلیدی رو در 40 فایل متنی به جستجو گذاشت و نتایج رو برگشت داد تا آیتم های مربوط در لیست باکس Like شوند؟

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

*منظور از Input Box همون Edit Box هست، ببخشید.
 

پیوست ها

  • ListBoxSearch.rar
    845 بایت · بازدیدها: 105
آخرین ویرایش:

loo30fer

کاربر متخصص مولتی مدیا بیلدر
یک نمونه براتون پیوست کردم.
ضمنا دوست عزیز من برای اینجور مواقع استفاده از پلاگین SQLite رو توصیه میکنم که البته برای راحتی دوستان و آشنایی و نحوه استفاده از این پلاگین یک آموزش کامل هم داده شده :آموزش قدم به قدم پلاگين SQLite
 

پیوست ها

  • SearchToFile.rar
    774 بایت · بازدیدها: 97
آخرین ویرایش:

Niloofar_222

New Member
آقای لوسیفر خیلی از راهنماییتون ممنونم اما منظورم یک چیز متفاوت تر از این بود. ببخشید که بد توضیح دادم، ببینید من برنامم رو میزارم. میخواستم کاربر داخل کادر Editbox کلمه رو وارد کنه بعد اون کلمه بین همه صفحات Html که سه نمونش رو گذاشتم چک بشه و در نهایت اگه تو اون صفحه یا صفحات بود همون عنوان ها تو لیست باکس Like بشن.

ضمنا چطوری میشه با انتخاب یک آیتم و زدن کلید Go به یک صفحه دیگه بریم؟ مثلا آیتم دو رو انتخاب کنم و با زدن دکمه Go به صفحه دوم برم؟
ممنون
 

پیوست ها

  • Search.rar
    22.4 کیلوبایت · بازدیدها: 61

m javad

کاربر متخصص
نمونه رو براتون آماده کردم
جستجو توی فایل html دردسر داره، پس بهتره متن توی فایل html رو توی یه فایل متنی بزارید و بعد اون فایل متنی رو بگردید
پس برای این مثالتون برای هر کدوم ار سه فایل html یه فایل متنی ساختم و اونهارو میگردم
پس با تایپ هر کلمه ، برنامه هر سه تا فایل رو میگرده (الان تمام نامهای درون فایل DBMS.txt رو میگرده ، پس برای اضافه کردن کافی نام فایل جدید رو توی اون فایل اضافه کنید و فایل متنیش رو هم اضافه کنید) و اگر اون کلمه موجود باشه نام اونهار و توی لیست باقی میذاره
برای رفتن به صفحه های مختلف هم توی این نمونه کاری انجام ندادم
چون شما توی هر صفحه کل آیتمهارو گذاشتید که این راه راه مطلوبی نیست
بهتره لیست باکس و ادیت باکس رو توی master layer page بزارید که برای تمام صفحات در دسترس باشه
و برای رفتن به هر صفحه میتونید شماره آیتم انتخاب شده در لیست باکس رو بگیرید و بعد دستور رفتن به اون صفحه رو بدید
اگر قسمت صفحه رو مشکلی داشتید بگید تا نمونه بزارم براتون
موفق باشید
 

پیوست ها

  • Media-Search.zip
    25.9 کیلوبایت · بازدیدها: 96
آخرین ویرایش:

Niloofar_222

New Member
سلام،
خیلی ممنون از توجهی که داشتید.

بله، دقیقا همینطوره من این سه صفحه رو فقط برای این ساختم که طریقه جابجایی بین صفحات رو یاد بگیرم وگرنه میدونستم که این کار کپی کردن بسیار نابجاست. من قصد دارم مثلا فقط صفحه اول رو داشته باشم و فایل های Html رو با انتخاب نام اونها (Tehran, Shiraz ,...) در شی Html بارگزاری کنم (یا از همون روش Mater Page که گفتید). یعنی یا کاربر خودش از Listbox عناوین رو انتخاب میکنه و فایل هارو در شی Load میکنه یا اینکه با استفاده از Search به دنبال یک صفحه خاص میگرده، اونیکه پرسیدم با انتخاب یک آیتم خاص چطوری به یک صفحه برم برای یک قسمت دیگه از کارم بود، چون در یک جای دیگه یک لیست داشتم که دو تا آیتم داشت، با انتخاب آیتم اول به صفحه دوم و با انتخاب آیتم دوم یک فایل MDB رو Run میکرد و من چون طریقه انجام این کار رو نمیدونستم پرسیدم، اگه لطف کنید ممنون میشم.

اما در مورد فایلی که زحمت کشیدید، اینطور متوجه شدم که علاوه بر 40 صفحه Html باید محتویات اون ها رو در 40 فایل Txt هم ذخیره کنم (بصورت همنام)، من فایل شما رو اجرا کردم ولی هیچ نتیجه ای مشاهده نکردم! یعنی برای مثال من کلمه فارس رو به عنوان کلمه مینویسیم، پس قاعدتا باید آیتم "Shiraz" داخل Listbox باقی بمنونه که اینطور نیست، در واقع برای هیچ کلمه ای هیچ نتیجه ای مشاهده نمیکنم. ضمنا ببخشید من نفهمیدم شما از کجا شی اسکریپت Search رو فرخوانی کردید، چون نه داخل اسکریپت صفحه فراخوانی شده بود و نه در شی Script ، خیلی ممنون از شما.
 

m javad

کاربر متخصص
اما در مورد فایلی که زحمت کشیدید، اینطور متوجه شدم که علاوه بر 40 صفحه Html باید محتویات اون ها رو در 40 فایل Txt هم ذخیره کنم (بصورت همنام)، من فایل شما رو اجرا کردم ولی هیچ نتیجه ای مشاهده نکردم! یعنی برای مثال من کلمه فارس رو به عنوان کلمه مینویسیم، پس قاعدتا باید آیتم "Shiraz" داخل Listbox باقی بمنونه که اینطور نیست، در واقع برای هیچ کلمه ای هیچ نتیجه ای مشاهده نمیکنم.
خب این به این خاطر هست که من برای آدرس فایلهای txt ،مثل خودتون برای فایلهای html از srcdir استفده کردم
پس میبایست محتویات اون فایل رو که داخل یه فولدر میریزید فایل mbd رو کامپایل کنید و فایل exe تون رو هم توی همون فولدر بریزید تا درست جواب بده

ضمنا ببخشید من نفهمیدم شما از کجا شی اسکریپت Search رو فرخوانی کردید، چون نه داخل اسکریپت صفحه فراخوانی شده بود و نه در شی Script ، خیلی ممنون از شما
روی شی editbox دبل کلیک کنید، توی قسمت Optional action نام اسکریپت search رو وارد کردم
با این کار هر یک باری که یک حرف رو توی ادیت تایپ میکنید یک بار اون اسکریپت اجرا میشه

چون در یک جای دیگه یک لیست داشتم که دو تا آیتم داشت، با انتخاب آیتم اول به صفحه دوم و با انتخاب آیتم دوم یک فایل MDB رو Run میکرد و من چون طریقه انجام این کار رو نمیدونستم پرسیدم، اگه لطف کنید ممنون میشم.
اون نمونه رو هم براتون آماده میکنم و میزارم
موفق باشید
 

m javad

کاربر متخصص
اینم اون نمونه برای انتخاب گزینه های لیست باکس و کار دادن به اونها
 

پیوست ها

  • sample.zip
    744 بایت · بازدیدها: 65

Niloofar_222

New Member
واقعا خیلی ممنون از راهنمایی هایی که کردین، بله تست کردم، جستجو کاملا درست کار میکنه. از Listbox هم ممنون، فقط یک مشکلی که برام پیش اومده اینه که وقتی از لیست باکس یک آیتم رو انتخاب میکنم تا دستور RUNMBD رو اجرا کنم خطای زیر ظاهر میشه، اصلا مشکل آدرس دهی هم وجود نداره، آدرس درسته اما اجرا نمیکنه
 

پیوست ها

  • Error.jpg
    Error.jpg
    25.8 کیلوبایت · بازدیدها: 13

m javad

کاربر متخصص
سری پیش تصویر نبود !!!
من امتحان کردم، مشکلی نیست
این کد رو توی دکمه go جاگزین کنید:
کد:
If (ItemNum=1) Then
Page("Page 2")
End
If (ItemNum=2) Then
RunMBD("c:\users\javad\desktop\1.mbd","")
End
البته آدرسش رو خودتون تغییر میدید دیگه​
 

Niloofar_222

New Member
ممنونم، نمیدونم چرا اینطوریه، ببینید وقتی این کار رو در پروزه اصلی خودم انجام میدم اون ارور میاد اما وقتی یک فایل جدید MMB درست میکنم و دقیقا همین کد رو اونجا بکار میبرم، به راحتی و بدون مشکل اجرا میشه، نمیدونم مشکل کجاست، هرچی که هست فکر نکنم به خود MMB مربوط بشه، حتی صفحه های پروژم رو Export کردم و در یک فایل جدید Import کردم اما انگار با صفحات پروژم مشکل داره!!!
 

Niloofar_222

New Member
بله، خیلی ممونونم، ضمیمه کردم.
 

پیوست ها

  • Part-Of.rar
    575.2 کیلوبایت · بازدیدها: 75

m javad

کاربر متخصص
مشکل از پلاگین هست
چون زمانی که اون ر وحذف می کنیم مشکل حل میشه
حالا چرا با پلاگین درگیر هست رو نمیدونم
در حقیقت پلاگین با دستور runmbd مشکل داره
چون وقتی کد رو به شکل زیر می نویسیم مشکل حل میشه:
کد:
RunMBD("<SrcDir>\Media2.mbd","NEW_WINDOW")
در حقیقت پلاگین وظیفه Draw کردن آیتمهای لیست باکس رو به عهده داره
وقتی شما دستور RunMBD رو میدید ناچارا برنامه قبلی terminate میشه و برنامه جدید باز میشه
پلاگین اینجا متوجه نمیشه که لیست باکسی که داشت اونو کنترل میکرد چه بلایی سرش اومده و در گیر میشه
حالا دقیقا اون پلاگین رو برای چه منظوری استفاده می کردید؟​
 

Niloofar_222

New Member
واقعا مرسی:rose:
از صبح همه کارهامو به هم ریخته بود، خیلی ممنون که مشکل رو پیدا کردین، بله دقیقا من هم بعد از خوندن متن شما پلاگین مربوطه رو پاک کردم و بعد از اجرا دیدم که درست شده...

حالا دقیقا اون پلاگین رو برای چه منظوری استفاده می کردید؟
ببینید من برای راست چین شدن آیتم های Listbox ازش استفاده میکردم. الان واقعا موندم چیکار کنم، اگه برش دارم آیتم هام که فارسی هستند چپ چین میشن و این چهره بدی به برنامم میده، اگه هم این رو بزارم از اون طرف نمیتونم فایل دیگه ای رو اجرا کنم، راه حلی سراغ دارید؟ خیلی ممنون که لطف میکنید و کمک میکنید.
 

loo30fer

کاربر متخصص مولتی مدیا بیلدر
ببینید من برای راست چین شدن آیتم های Listbox ازش استفاده میکردم. الان واقعا موندم چیکار کنم، اگه برش دارم آیتم هام که فارسی هستند چپ چین میشن و این چهره بدی به برنامم میده، اگه هم این رو بزارم از اون طرف نمیتونم فایل دیگه ای رو اجرا کنم، راه حلی سراغ دارید؟ خیلی ممنون که لطف میکنید و کمک میکنید.
من بهتون پیشنهاد میکنم که از پلاگین Epigraph جناب m javad استفاده کنید که البته این پلاگین برای آپادانا رایگان ولی بیلدر نه , البته قابلیتهای زیادی رو داره که ارزش خریدن رو داره.
 

Niloofar_222

New Member
من بهتون پیشنهاد میکنم که از پلاگین Epigraph جناب m javad استفاده کنید که البته این پلاگین برای آپادانا رایگان ولی بیلدر نه , البته قابلیتهای زیادی رو داره که ارزش خریدن رو داره.
بله، مرسی از راهنماییتون، الان آیتم هام دو الی سه تاست، فکر کنم که تا چند روز دیگه تعدادش بالاتر بره و باید این پلاگین خوب رو تهیه کنم، در Editbox ها هم به این قابلیت نیاز دارم، مرسی که این پلاگین رو معرفی کردید.

---

آقای m javad :
ببخشید یک سوال کوچیک در مورد جستجویی که گذاشته بودید داشتم، ببینید فایل های Html و Txt و آیتم های Listbox همشون باید دقیقا همنام باشند؟ خب تا جاییکه فایل های Html و Txt بصورت انگلیسی و همنام باشند مشکلی نیست اما این امکان وجود داره که آیتم های Listbox یک نام دیگه ای (ترجیحا) فارسی داشته باشند؟
 

m javad

کاربر متخصص
بله، مرسی از راهنماییتون، الان آیتم هام دو الی سه تاست، فکر کنم که تا چند روز دیگه تعدادش بالاتر بره و باید این پلاگین خوب رو تهیه کنم،
اتفاقا میخواستم همین رو گوشزد کنم که اگر تعداد آیتمهاتون پایین هست خودتون لیست باکس رو شبیه سازی بکنید که نیازی به پلاگین نباشه
ببخشید یک سوال کوچیک در مورد جستجویی که گذاشته بودید داشتم، ببینید فایل های Html و Txt و آیتم های Listbox همشون باید دقیقا همنام باشند؟ خب تا جاییکه فایل های Html و Txt بصورت انگلیسی و همنام باشند مشکلی نیست اما این امکان وجود داره که آیتم های Listbox یک نام دیگه ای (ترجیحا) فارسی داشته باشند؟
بله این کار امکان پذیر هست
شما باید معادل سازی بکنید، یعنی shiraz رو با شیراز و ... معادل کنید
برای جستجو از shiraz و برای نمایش از شیراز استفاده بکنید
چندین راه برای این کار هست
استفاده از دوتا فایل DBMS و DBMS1 که یکیش انگلیسی و یکیش فارسی باشه
بعد از به دست آوردن shiraz توی فایل انگلیسی همون خط با همون شماره رو از فایل فارسی برای لیست باکس به دست میارید
استفاده از SaveVariable , LoadVariable
ساخت لیست مجازی:
کد:
n$[1]='شيراز'
n$[2]='تهران'
 

Niloofar_222

New Member
خیلی ممنون، از اونجاییکه من تابحال با این دستورات کار نکردم و یک مبتدی هستم، اگه امکان داره تو اون مثال این رو نشون بدید. خیلی ممنون میشم.
 

جدیدترین ارسال ها

بالا