Miten voin tarkistaa löytyykö jostain merkkijonosta toista merkkijonoa?
Siis vaikka näin jos ensimmäinen merkkijono on seuraava:
"Huomenta Suomi"
Ja toinen on "Suomi"
niin ohjelma tarkistaisi onko ensimmäisessä merkkijonossa toista merkkinjonoa.
merkkijonoa, merkkijonoa, merkkijonoaaa...
if InStr(en muista parametreja mutta kato helpistä) Then print "löytyi!" end if
Katoin parametrejä mutten saa toimimaan..
tossa on se sivu:
https://www.ohjelmointiputka.net/hak/?kieli=Visual Basic&nimi=InStr
sain tuon palauttamaan vain numeroita..
tuomas kirjoitti:
sain tuon palauttamaan vain numeroita..
https://www.ohjelmointiputka.net/hak/?kieli=Visual Basic&nimi=InStr:
Funktio palauttaa kohdan, jossa hakusana esiintyy merkkijonossa.
Thus: If InStr("blaah", "a") <> 0 Then MsgBox "Löyty"
Entä miten tarkistan löytyykö merkkijonoa niinkuin tuossa ensimmäisessä esimerkissäni?
If InStr("Huomenta Suomi", "Suomi") Then Print "löytyi"
eli siis jos instr palauttaa nollan niin sitä ei löydy, jos jotain muuta, niin löytyy. Kyllä Visual Basic:kin osaa iffeissä tolleen että boolean-arvoja (0 = false, muut = true) tarkistettaessa tarvii vaan pistää tuon funktion eikä mitään vertailukoheita.
No nyt toimii ihan nätisti.
Miten saan vielä niin että se ei erottele suuria ja pieniä kirjaimia?
kun näin ei oikein toimi:
If InStr("Huomenta Suomi", "Suomi", vbtextcompare) Then Print "löytyi"
tuomas kirjoitti:
Entä miten tarkistan löytyykö merkkijonoa niinkuin tuossa ensimmäisessä esimerkissäni?
"a" on merkkijono...
tuomas kirjoitti:
No nyt toimii ihan nätisti.
Miten saan vielä niin että se ei erottele suuria ja pieniä kirjaimia?
Aja molemmat merkkijonot LCase():n tai UCase():n läpi.
Noncasesensitiven saa helpommin lisäämällä loppuun 1 (Compare) Esim:
X = InStr(1, "HeISsuLiVei", "hEiSSulIvEI", 1)
Eka 1 on Start ja lopussa Compare
Edit: Olihan se jo tossa Tuomaksen viestissä, mutta jos käyttää Comparea pitää olla myös tuo Start
setä kirjoitti:
Noncasesensitiven saa helpommin lisäämällä loppuun 1 (Compare)
Ai, sitäkö tuo text compare onkin. Kätevää. Aina oppii jotain uutta.
Aihe on jo aika vanha, joten et voi enää vastata siihen.