"Korjattu" Getword ja CountWords

Oletko tehnyt jotain, mistä muut voisivat hyötyä. Postita vinkit tänne.
Post Reply
User avatar
KilledWhale
Tech Developer
Tech Developer
Posts: 543
Joined: Sun Aug 26, 2007 2:43 pm
Location: Liminka

"Korjattu" Getword ja CountWords

Post by KilledWhale » Mon Jun 15, 2009 4:33 pm

CB:n omissa GetWord ja CountWords -funktioissa tuntuu olevan häikkää monikirjaimisten erottimien kanssa. Lisäksi GetWord tykkää kusta ääkkösetkin joskus. Tässä olisi saman asian hoitavat funktiot jotka eivät sekoile. Koodia olen yrittänyt optimoida niin paljon kuin mahdollista ja lisäksi kommentoin sitä hieman aloittelijoille lueskeltavaksi.

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
CoolBasic henkilökuntaa
Kehittäjä

cbFUN Kello
cbSDL
Whale.dy.fi

<@cce> miltäs tuntuu olla suomen paras

User avatar
elmo123
Active Member
Posts: 153
Joined: Sun Sep 09, 2007 4:19 pm

Re: "Korjattu" Getword ja CountWords

Post by elmo123 » Mon Jun 15, 2009 7:28 pm

En tiennytkään, että GetWord ja CountWords kusevat noin pahasti. Itselle ei kuitenkaan tule näille käyttöä, koska useampimerkkisiä erottimia en tule nyt enkä jatkossakaan tarvitsemaan. :|
Sry.


off:
123 viestiä :lol:
Kiinnostuin pelien tekemisestä ennen 1. luokkaa.
Sitten 3. luokalla tuli CB. Ja siitä se alkoi.

Blender! TF2! CB! Game Maker! Nokia-mollaus! Kitaransoitto! Breakdance! MadTracker! Minecraft!

Post Reply