PDA

View Full Version : پیدا کردن یک کلمه در یک تکستباکس...



niksalehi
پنج شنبه 22 تیر 1391, 21:59 عصر
سلام، 3 تا سوال ابتدایی داشتم...
چطور میتونم یک کلمه رو توی یک تکستباکس سرچ کنم؟ بعد اگه اون کلمه بود یه اتفاقی رخ بده...؟
چطور میتونم آدرسی رو که وب براوزر در حال نمایشش هست پیدا کنم؟
به فرض ما یک دکمه داریم ک متن تکستباکس 1 رو به لیستباکس 1 میفرسته، یه سری کلمه هم توی لیستباکس 2 هست، میخوام اگه هر کدوم از این کلمه ها توی تکستباکس 1 بود، موقع اضافه شدن متن ارور بده...:متفکر:

the king
پنج شنبه 22 تیر 1391, 22:11 عصر
سلام، 3 تا سوال ابتدایی داشتم...
چطور میتونم یک کلمه رو توی یک تکستباکس سرچ کنم؟ بعد اگه اون کلمه بود یه اتفاقی رخ بده...؟

اگر در Text1 کلمه Sample بود فلان کد رو اجرا بکن :

If InStr(Text1.Text, "Sample") > 0 Then
'Your code
End If



چطور میتونم آدرسی رو که وب براوزر در حال نمایشش هست پیدا کنم؟

اگر منظورتون Internet Explorer و FireFox و Opera و Chrome و ... است هر کدوم روال خودشون رو دارند، چندان ساده نیست.



به فرض ما یک دکمه داریم ک متن تکستباکس 1 رو به لیستباکس 1 میفرسته، یه سری کلمه هم توی لیستباکس 2 هست، میخوام اگه هر کدوم از این کلمه ها توی تکستباکس 1 بود، موقع اضافه شدن متن ارور بده...:متفکر:

Private Sub Command1_Click()
Dim index As Integer
For index = 0 To List2.ListCount - 1
If InStr(Text1.Text, List2.List(index)) > 0 Then
MsgBox "Your message!"
Exit Sub
End If
Next
List1.AddItem Text1.Text
End Sub

MohammadGh2011
پنج شنبه 22 تیر 1391, 22:24 عصر
سلام عليکم

چطور میتونم یک کلمه رو توی یک تکستباکس سرچ کنم؟ بعد اگه اون کلمه بود یه اتفاقی رخ بده...؟
با تابع InStr يا InStrRev بايد کار کنيد ؛جستجو کنيد



چطور میتونم آدرسی رو که وب براوزر در حال نمایشش هست پیدا کنم؟
WebBrowser1.LocationURL

niksalehi
شنبه 24 تیر 1391, 17:11 عصر
سلام دوست عزیز...
ممنون بابات کد کار میکنه اما اگر توی لیستباکس 2 این کلمه باشه: man و ما بخوایم کلمه ی manzare رو به لیستباکس 1 اضافه کنیم نمیشه، یعنی همون مسیج رو میده

MsgBox "Your message!"
میشه کاری کرد اگه عین کلمه رو خواستیم اضافه کنیم ارور بده؟

محسن واژدی
شنبه 24 تیر 1391, 19:05 عصر
سلام دوست عزیز...
ممنون بابات کد کار میکنه اما اگر توی لیستباکس 2 این کلمه باشه: man و ما بخوایم کلمه ی manzare رو به لیستباکس 1 اضافه کنیم نمیشه، یعنی همون مسیج رو میده

MsgBox "Your message!"
میشه کاری کرد اگه عین کلمه رو خواستیم اضافه کنیم ارور بده؟

متاسفانه تابع InStr خاصیت Whole-Word را مانند تایع Find در RTBox ندارد،
برای بکارگیری این ویژگی میتوانید از تابع زیر استفاده کنید،
کد زیر را در یک ماژول کد قرار بدین:

Public Function InStrX(Optional Start&, Optional String1$, Optional String2$, Optional Compare As VbCompareMethod = vbBinaryCompare, Optional FindHoleWordOnly As Boolean = False)
On Error Resume Next
Dim lLstPos&
Dim bExLS As Boolean, bExRS As Boolean
Dim sChr$
If Start = 0 Then Start = 1
lLstPos& = Start&
Do
InStrX = VBA.InStr(lLstPos&, String1, String2, Compare)
If FindHoleWordOnly And InStrX > 0 Then
If InStrX > 1 Then
sChr$ = Mid(String1, InStrX - 1, 1)
bExLS = IsChrSymbol(sChr$)
Else
bExLS = True
End If

If InStrX + Len(String2) < Len(String1$) Then
sChr$ = Mid(String1$, InStrX + Len(String2), 1)
bExRS = IsChrSymbol(sChr$)
Else
bExRS = True
End If

If Not bExLS Or Not bExRS Then lLstPos& = (InStrX + Len(String2)) + 1: InStrX = 0
Else
Exit Do
End If
Loop Until (bExLS And bExRS) Or lLstPos& >= Len(String1)

End Function

Private Function IsChrSymbol(ByVal sChr$) As Boolean
On Error Resume Next
sChr$ = Left(sChr$, 1)
IsChrSymbol = sChr$ = "!" Or sChr$ = "@" Or sChr$ = "#" Or sChr$ = "$" Or _
sChr$ = "%" Or sChr$ = "^" Or sChr$ = "&" Or sChr$ = "*" Or _
sChr$ = "_" Or sChr$ = "-" Or _
sChr$ = """" Or sChr$ = "'" Or sChr$ = ":" Or _
sChr$ = ";" Or sChr$ = "<" Or sChr$ = ">" Or sChr$ = "[" Or sChr$ = "]" Or _
sChr$ = "\" Or sChr$ = "/" Or sChr$ = "?" Or sChr$ = "," Or sChr$ = "." Or _
sChr$ = "{" Or sChr$ = " "
End Function

برای مثال:

Private Sub Command1_Click()
MsgBox InStrX(, "aaa bbb ccccDDDD cccc eeee ffff", "cccc", , True)
End Sub


موفق باشید