PDA

نسخه کامل مشاهده نسخه کامل : مشكل با جستجوي حرف "ك" در TextBox



mehdi_yg
13-03-2006, 13:25
سلام

چرا وقتی میخوام داخل یه textbox حرف " ک" رو جستجو کنم پیدا نمیکنه ولی بقیه حروف رو به راحتی پیدا میکنه ؟

Mostafa1024
13-03-2006, 18:29
خب چطور جستجو ميكني كه پيدا نميكنه ؟

mehdi_yg
13-03-2006, 19:02
خب چطور جستجو ميكني كه پيدا نميكنه ؟


[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
اين برنامه رو ببين هر حرفي رو كه تو textbox2 تایپ میکونی تو textbox1 پیدا میکنه بجوز حرف " ک " اصلاً هر کلمه ای رو که توش "ک" داشته باشه پیدا نمیکنه . مشکلش چیه ؟

mehdi_yg
14-03-2006, 11:39
كم كم داريم ميريم تو سال 85 ولي هنوز كسي كمكم نكرده !

Mostafa1024
14-03-2006, 15:15
مهدي جون من كدتو يه مقداري عوض كردم . ببين جواب ميده ؟:
Dim x As Integer
s=1
if text1.selstart<>0 then
s = text1.selstart+1
endif

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

mehdi_yg
15-03-2006, 08:17
مهدي جون من كدتو يه مقداري عوض كردم . ببين جواب ميده ؟:
Dim x As Integer
s=1
if text1.selstart<>0 then
s = text1.selstart+1
endif

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

نه آقا Mostafa جواب نداد . بازم ممنون از توجه شما

Payman_62
15-03-2006, 12:28
الآن برنامتو ديدمو دانلود كردم. يه تغييراتي توش دادم. ببين اين كد چه طوره.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

رابین هود
15-03-2006, 13:38
دوست عزیز سلام
معمولا در برنامه نویسی ها حرف ک و ی مشکل ساز هستند ما دو نوع ک داریم:
ک و ك
ی و ي
برای همین همیشه دردسر ساز میشن اگه توی برنامتون دقت کنید میبینید که حرف ك اگر به این شکل تایپ بشه بدرستی سرچ رو انجام میده ولی به شکل معمول نه.
کدی هم دوستمان پیام نوشته اند کاملا درست کار میکنه و دقیقا همین کاری که میگم انجام میده یعنی موقعی که ک رو تایپ میکنی و میخوای جستجو انجام بدی اونو به این ك تبدیل میکنه.
ایشااله موفق باشی

Payman_62
15-03-2006, 18:06
پست قبليو اديت كردم. بهتره به جاي اون 6 خط از replace استفاده شه.
اگه متنت هميشه همين قدر كوتاهه كه هيچي ولي اگه ممكنه متن بلند باشه بهتره الگوريتم برنامه رو طوري تغيير بدي كه هر وقت در متن تغييري ظاهر شد تابع replace وارد عمل شه كه با هر بار سرچ تو كل متن دنبال ك نگرده و سرعت نياد پايين. عمل replace رو براي ي كه رابين هود اشاره كرد هم انجام بده.

Mostafa1024
15-03-2006, 20:42
آق مهدي من موقعي كه پست قبلي رو فرستادم وي بي دم دستم نبود كه تستش كنم . ولي امروز همون برنامه زير رو توي وي بي باز كردم .
احتمالا مشكل توي اون فونتي هست كه انتخاب كردي . چون من فونت Arial رو انتخاب كردم و خيلي راحت جواب داد

x = InStr(1, 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 I

mehdi_yg
16-03-2006, 01:17
از همه دوستان سپاسگذارم مشكل حل شد و برنامه بخوبي كار ميكنه
بازم ممنون