Załóżmy, że mam zmienną “zmienna”, jej zawartość to: blebleabcbleble lub bleblebleble. Jak robić aby program “wyszukiwał” ciąg znaków abc i użył ich w IF-ie np.
Dim zmienna
zmienna = blebleabcbleble
if zmienna = dowolnyciagznakowczylibleble + "abc" then
msgbox "zmienna zawiera ciąg znaków abc"
utrivv
(Utrivv)
29 Sierpień 2008 11:22
#2
w VBscript jest funkcja right(string, ilość znaków) która zwraca określoną ilość znaków od prawej strony stringu.
Jeżeli w VB6 też istnieje to wystarczyłoby:
if right(zmienna,3) = “abc” then
Jeżeli źle cię zrozumiałem i chodzi ci o to by sprawdzić czy zmienna zawiera ciąg abc to można użyć pętli
i =1
spr = 0
’ tu możesz wpisać string, jak chcesz możesz go podstawić pod jakiś input box
szukany_string = “1234”
while (spr = 0 or i = (len(zmienna) - (len(szukany_string)))
if mid(zmienna,i, len(szukany_string)) = szukany_string then
costam
costam
spr = 1
end if
i = i + 1
wend
A jednak mi nie wyszło
Opowiem jaśniej: Mam przycisk i zmienną “zmienna”, zmienna “zmienna” może zawierać ciągznaków+abc+ciągznaków lub ciągznaków+123+ciągznaków jeśli zawiera w sobie właśnie 123 lub abc wtedy wyskakuje msgbox.
Dobra, poradziłem sobie chyba
utrivv
(Utrivv)
29 Sierpień 2008 11:59
#5
ok ale ile razem?
jeżeli tylko te dwa:
i =1
spr = 0
’ tu możesz wpisać string, jak chcesz możesz go podstawić pod jakiś input box
szukany_string1 = “1234”
Szukany string2 = “abc”
while (spr = 0 or i = (len(zmienna) - (len(szukany_string2)))
if mid(zmienna,i, len(szukany_string1)) = szukany_string or mid(zmienna,i, len(szukany_string2)) = szukamy_string2 then
costam
costam
spr = 1
end if
i = i + 1
wend
jeżeli tych ciągów ma być więcej to proponuje tablice i pętelkę wew po wszystkich jej wartościach
Tablice?! O tym nie pomyślałem
razorjack
(Lukasz Tolwinski)
29 Sierpień 2008 14:57
#7
if InStr( zmienna, szukany_string ) then
msgbox "znaleziony"
a to zadziała ?
razorjack
(Lukasz Tolwinski)
29 Sierpień 2008 15:03
#9
razorjack, nie działać
ale co nie działać? co się dzieje ?
Poczekaj bo chyba coś zmieniłeś?
A jednak nie działać
Dim zmienna
Private Sub Form_Load()
zmienna = hjabchj
If InStr(1, zmienna, abc) Then
MsgBox "znaleziony"
Else
MsgBox "błąd!"
End If
Unload Me
End Sub
na to wyskakuje msgbox “błąd!”
razorjack
(Lukasz Tolwinski)
29 Sierpień 2008 15:08
#12
Dim str As String = "ala ma koteczka"
Dim szuk As String = "tecz"
If InStr(str, szuk) Then
Debug.Print("znalazlem")
Else
Debug.Print("nie!")
End If
działać
Dziękuję Ci bardzo!
EDIT: Powiedz mi jeszcze jak zrobić by komunikatem znalazłem odpowiedziało też na np. wyszukanie ciągu 1234 w jnln1234lkjn i wyszukanie tyu w tyukm
razorjack
(Lukasz Tolwinski)
29 Sierpień 2008 17:07
#14
nie do końca zrozumiałem Twoje pytanie
MsgBox "Znalazłem ciąg " + szuk + " w " + str
Chodzi o to że zmienna może zawierać też inne znaki do wyszukania
utrivv
(Utrivv)
1 Wrzesień 2008 06:23
#16
zamiast abc podstaw nowy string
wtedy tak samo tyle że
If InStr(1, zmienna, string_z_abc) Then
Myślę że było by łatwiej gdybyś od razu powiedział o co chodzi, co ma ten programik robić, do czego go potrzebujesz itp