PDA

View Full Version : جستجوی کلمه در داخل یک TextBox



loads
یک شنبه 21 اسفند 1384, 09:10 صبح
سلام دوستان
پیشرفته ترین کد برای جستجوی یک کلمه در داخل یه textbox چیه ؟

Payman62
یک شنبه 21 اسفند 1384, 12:06 عصر
کار شما کار مشکلی نیست که دنبال کد پیشرفته میگردی. با یه instr ساده میتونی هر چی میخوای پیدا کنی.

i = InStr(1, Text1.Text, "x")

loads
یک شنبه 21 اسفند 1384, 13:44 عصر
کار شما کار مشکلی نیست که دنبال کد پیشرفته میگردی. با یه instr ساده میتونی هر چی میخوای پیدا کنی.

i = InStr(1, Text1.Text, "x")

Payman62 عزیز از این کد قبلاً استفاده کردم اما هر بار با یه مشکل روبرو شدم مثلاً برنامه ای رو که آپلود کردم رو ببین ، نمیدونم چرا رو حرف "ک" جواب نمیده تمام حروف رو پیدا میکونه غیر از ک شما میدونید مشکل از کجاست . خشحال میشم اگر کمک کنید

Payman62
یک شنبه 21 اسفند 1384, 17:19 عصر
دوست عزیز فرم رو نفرستادی.

yavari
یک شنبه 21 اسفند 1384, 19:21 عصر
پیمان راست میگه
برنامه رو درست نفرستادی

m_zargarnia
یک شنبه 21 اسفند 1384, 19:31 عصر
این مشکل به احتمال زیاد به دلیل تفاوت کد پیج حرف "ک" هست . من فکر میکنم فایل kbdfa.dll رو جدیدا نصب کردی . اینطور نیست ؟

meh_secure
دوشنبه 22 اسفند 1384, 00:05 صبح
این تابع مشکل نداره. کدپیج ها با هم متفاوت اند.

loads
دوشنبه 22 اسفند 1384, 00:12 صبح
ببخشید دوستان ، فایل رو یبار دیگه فرستادم

meh_secure
دوشنبه 22 اسفند 1384, 00:19 صبح
کاراکتر "ک" ای که میتونه جستجو بشه کدش 22 هست در صورتی که "ک" ای که با کیبورد تایپ میکنیم کدش 152 هست.

loads
دوشنبه 22 اسفند 1384, 07:37 صبح
کاراکتر "ک" ای که میتونه جستجو بشه کدش 22 هست در صورتی که "ک" ای که با کیبورد تایپ میکنیم کدش 152 هست.

چاره چیه ؟ اگه ممکنه راهنمایی کنید . ممنون میشم

meh_secure
دوشنبه 22 اسفند 1384, 14:46 عصر
اتفاقا من دیروز مشکل جستجو داشتم. اما در SQL Server که با استفاده از پارامترهاو نوع داده یونیکدی SQL Server حلش کردم.

loads
دوشنبه 22 اسفند 1384, 18:25 عصر
اتفاقا من دیروز مشکل جستجو داشتم. اما در SQL Server که با استفاده از پارامترهاو نوع داده یونیکدی SQL Server حلش کردم.

متوجه منظورتون نشدم یعنی باید تو برنامم از SQL استفاده کنم ؟

meh_secure
دوشنبه 22 اسفند 1384, 23:13 عصر
نه بابا میگم تو SQL Server مشکل داشتم. مشکل شما هم از کدپیج هاست حالا این رو من نمی دونم چطور حلش کنم.
اما شاید بشه با استفاده از تابع Replace اون "ک" مورد نظر رو جایگزین اون یکی "ک" بکنیم.

mohsen_sh
سه شنبه 23 اسفند 1384, 17:35 عصر
علاوه بر راه حل دوستان شما می توانید از تابع like استفاده کنید:
(if text1.text like (mohammad
then mbool=true
در ضمن از %و- نیز میتوانید استفاده کنید در حالاتی که بعضی یا تمام حروف را نمی دانید

vbhamed
سه شنبه 23 اسفند 1384, 23:16 عصر
برنامه شما روی دستگاه من کاملا درست کار می کنه
اولا فایل kbdfa.dll سالم رو روی دستگاهت نصب کن (اگه خواستی Email بزن تا بهت بدم)
ثانیا زبان عربی رو از لیست زبانهای کی برد حذف کن
hmdfar@yahoo.com

loads
چهارشنبه 24 اسفند 1384, 07:57 صبح
علاوه بر راه حل دوستان شما می توانید از تابع like استفاده کنید:
(if text1.text like (mohammad
then mbool=true
در ضمن از %و- نیز میتوانید استفاده کنید در حالاتی که بعضی یا تمام حروف را نمی دانید

mohsen_sh عزیز تا حالا با این تابع کار نکردم . میشه بیشتر توضیح بدی که اونو چجوری باید وارد برنامه کنم ومنظورت از "(mohammad )"چیه ؟

Payman62
چهارشنبه 24 اسفند 1384, 11:58 صبح
الآن برنامتو دیدمو دانلود کردم. یه تغییراتی توش دادم. ببین این کد چه طوره.

Private Sub Command1_Click()
Dim x As Integer
Text2.Text = Replace(Text2.Text, "ک", "ک")
Text1.Text = Replace(Text1.Text, "ک", "ک")
s = Text1.SelStart + Len(Text1.SelText) + 1
If Text1.SelStart = 0 Then s = 1
x = InStr(s, Text1.Text, Text2.Text, vbTextCompare)
If x <> 0 Then
Text1.SelStart = Int(x) - 1
Text1.SelLength = Len(Text2.Text)
Text1.SetFocus
Else
Text1.SelStart = 0
End If
End Sub
Private Sub Form_Load()
Text1.SelStart = 0
End Sub

loads
چهارشنبه 24 اسفند 1384, 13:01 عصر
Payman62 عزیز واقعاً اگه ما شما رو نداشتیم باید سر به بیابون میزاشتیم ، مشکل کاملاً برطرف شد ممنون از اینکه انقدر با حوصله جواب دادید و منو تحمل کردید . از دوستان دیگه هم که نظراتشون رو دادن هم تشکر میکنم این تاپیک برای من خیلی آموزنده بود امیدوارم برای دوستان دیگه هم همینطور باشه چون خیلیا تو فروم های دیگه این مشکل رو داشتن . موفق باشید

Payman62
چهارشنبه 24 اسفند 1384, 17:29 عصر
شما لطف داری عزیز.
ولی دقت کن من هر چی ک به این صورت بود رو به این صورت ک تبدیل کردم. دلیلشم این بود که شما در متنت از این ک استفاده کرده بودی ولی موقع سرچ از این ک استفاده میکردی و برنامه دچار مشکل میشد. حالا اگه متن رو عوض کنی و در متن از این نوع ک استفاده شده باشه باز برنامه دچار مشکل میشه چون موقع سرچ از این ک استفاده میکنی.
برای این که این مشکل پیش نیاد میتونیم از همون روشی که برای تبدیل ک به ک استفاده کردم در متنت استفاده کنیم تا اگه در متن هم از این ک وجود داره به این ک تبدیل شه و سرچ با موفقیت انجام شه. من پست قبلی رو ادیت کردم و این تغییرات رو دادم. البته این دفعه برعکس عمل کردم و ک رو به ک تبدیل کردم. چون دومی خوشگل تره. تابع replace تو یه خط کار اون 6 خط رو میکنه. این مساله رو در مورد ی هم انجام بده چون هم از این ی داریم هم از این ی ولی ی خوشگل تره.
اگه متنت همیشه همین قدر کوتاهه که هیچی ولی اگه ممکنه متن بلند باشه بهتره الگوریتم برنامه رو طوری تغییر بدی که هر وقت در متن تغییری ظاهر شد تابع replace وارد عمل شه که با هر بار سرچ تو کل متن دنبال ک نگرده و سرعت نیاد پایین.

loads
پنج شنبه 25 اسفند 1384, 00:44 صبح
خیلی ممنون از توضیحات تکمیلیتون ، حالا کاملاً گرفتم چی شد .