Koodissa on mukana pieni esimerkki, joka demonstroi valmiiden GetWordin Ja CountWordsin ongelmia. GetWord2:lle annetaan samat parametrit kuin normaalille GetWordille ja CountWords2 ottaa samat parametrit kuin CountWords.
Code: Select all
txt$ = "ääk - b-c - ö"
Print CountWords(txt, " - ") + "::" + CountWords2(txt, " - ")
Print ""
For i = 1 To 3
Print GetWord(txt, i, " - ") + "::" + GetWord2(txt, i, " - ")
Next i
WaitKey
Function GetWord2(a As String, b As Integer, c As String)
l = Len(c) // Otetaan pituus muuttujaan optimoinniksi
For i As Integer = 2 To b // Käydään läpi kaikki ei-halutut sanat
q = InStr(a, c) // Katsotaan löytyykö erotinta
If q Then // Löytyi
a = Mid(a, q + l) // Otetaan alkuosa pois erottimeen asti
EndIf
Next i
q = InStr(a, c) // Katsotaan vielä löytyykö erotinta
If q Then // Jos löytyi
Return Mid(a, 1, q - 1) // Palautetaan tekstiä seuraavaan erottimeen asti
Else // Ei löytynyt
Return Mid(a, 1) // Palautetaan loppuosa
EndIf
EndFunction
Function CountWords2(a As String, c As String)
Repeat
n + 1 // Kasvatetaan arvoa, että montako ON löydetty
aa = InStr(a, c, aa + 1) // Katsotaan löytyykö erotinta
If Not aa Then // Jos ei löydy
Exit // Poistutaan
EndIf
Forever
Return n // Palautetaan esiintymien määrä
EndFunction