Avatar billede tuctoh Nybegynder
03. oktober 2002 - 16:22 Der er 8 kommentarer og
1 løsning

count()?

Hejsa,

Jeg leder efter en funktion, som tæller hvor mange gange et ord optræder i en streng.

Se på følgende:

minvar = "hejsa, hejsa, hej"
response.write optElling("hejsa", minvar)


resultatet skal så være at scriptet skriver tallet "2", da det er det antal gange ordet optræder.
Jeg vil tro at VBScript i ASP har en sådan funktion indbygget - men hvad hedder den?
Hvis muligt, skal denne funktion IKKE være case sencitive - om man søger efter HeJsA eller hejsa skal give det samme resultat.

MVH
~Casper Bang
Avatar billede tuctoh Nybegynder
03. oktober 2002 - 18:39 #1
kan man slet ikke det????
Avatar billede medions Nybegynder
03. oktober 2002 - 18:42 #2
Prøv med:

strMinVar = "hejsa, hejsa, hej"
arrMinVar = Split(strMinVar,", ")

intCounts = 0

For i = 0 To UBound(arrMinVar)
  If arrMinVar(i) = "hejsa" Then
      intCounts = intCounts + 1
  End If
Next

Response.Write("Ordet hejsa opstod " & intCounts & " gange")

//>Rune
Avatar billede tuctoh Nybegynder
03. oktober 2002 - 19:04 #3
njaa, vil ikke virke godt nok...
Strengen er ikke nødvendigvis adskilt af kommaer... kun i eksemplet :s
Har du ikke et andet godt råd?
Avatar billede Søren Bech Morsing Praktikant
03. oktober 2002 - 19:22 #4
splitVed("hejsa")
strMinVar = "hejsa, hejsa, hej"
arrMinVar = Split(strMinVar,splitVed)

Len(arrMinVar) Eller Ubound(arrMinVar)
-ved ikke om Len kan bruges sådan i vbscript, det kan den i jscript
Avatar billede cht Nybegynder
03. oktober 2002 - 19:24 #5
Du kan bruge denne:

mintekst = "dette er en tekst hvor vi tæller hejsa, hvor hejsa optræder to gange"
Function countword(tekststreng,word)
    tekststreng = replace(tekststreng,".","")
    tekststreng = replace(tekststreng,",","")
    tekststreng = replace(tekststreng,"!","")
    tekststreng = replace(tekststreng,"?","")
    tekststreng = replace(tekststreng,"""","")

    For each item in Split(tekststreng," ")
        if lcase(item) = lcase(word) then
            countword = countword+1
        end if
    Next
End Function

response.write countword(mintekst,"hejsa")
Avatar billede tuctoh Nybegynder
03. oktober 2002 - 19:38 #6
SBK får pointene, da det var den løsning jeg vælger at bruge.
Fandt godt nok ud af svaret inden jeg læste det her, men det kunne du jo ikke vide :p

Tak for hjælpen allesammen!!!
Avatar billede cht Nybegynder
04. oktober 2002 - 07:00 #7
Hvis du bruger sbk's løsning, så får du også talt ord med der indeholder teksten, hvis du f.eks. søger efter hej, så tæller den både hejsa og hej.
Avatar billede Søren Bech Morsing Praktikant
04. oktober 2002 - 07:40 #8
cht det skal den vel også, det gør enhver søgealgorimte (umiddelbart)
Avatar billede cht Nybegynder
04. oktober 2002 - 12:53 #9
ok, det har du selvfølgelig ret i, det tænkte jeg ikke lige på.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester