Avatar billede tue Nybegynder
20. november 2000 - 19:07 Der er 10 kommentarer og
2 løsninger

Del streng

Hvordan deler jeg følgene:

ret(1) = \"Levels,updatepl.asp\"

Jeg skal have delt ved \',\' sådan at Levels står for sig, og updatepl.asp står for sig!

Jeg har forsøgt følgene:

left(ret(1),instrrev(ret(1),\",\")-1)

...dette virker også, men når jeg prøver:

right(ret(1),instrrev(ret(1),\",\")-1)

...for at få updatepl.asp ud, så deler den ved . og ikke ved , så der kun står .asp!

Hvorfor gør den det, og findes der ikke en nemmere måde at dele det på?
Avatar billede blazer Nybegynder
20. november 2000 - 19:10 #1
Brug kommandoen split!
Avatar billede tue Nybegynder
20. november 2000 - 19:14 #2
Den kommando har jeg kigge på, men synes ikke rigtig lige jeg kunne finde ud at bruge den, så kan du ikke lige opsætte den så den passe til det jag skal bruge den til!
Avatar billede tdaugaard Nybegynder
20. november 2000 - 19:21 #3
Dim arrLevels \' bare for sjov :)

If Ret(1) > \"\" Then
  arrLevels = Split(Ret(1), \",\")

  If UBound(arrLevels) > 0 Then
    For intIndex = 0 To UBound(arrLevels) - 1
      Response.Write arrLevels(intIndex) \' udskriv levels
    Next

    Response.Write arrLevels(UBound(arrLevels)) \' udskriv filnavn
  End If
Else
\' ingen levels fundet
End If
Avatar billede tdaugaard Nybegynder
20. november 2000 - 19:23 #4
Split() splitter en streng til et array som du kan bruge ligesom et normalt array in case ya didn\'t know :)
Avatar billede tue Nybegynder
20. november 2000 - 23:21 #5
Det kan da ikke passe at det er den nemmeste måde at udskrive en Split på!!!

Når man kan udskrive filnavnet så nemt som:

arrLevels(UBound(arrLevels))

... findes der så ikke noget ligende for linknavnet???
Avatar billede stingbat Nybegynder
20. november 2000 - 23:25 #6
Du kan bruge en af disse 2 metoder...:

- Split
tekst = \"Levels,updatepl.asp\"
a = Split(tekst,\",\")
v1 = a(0) \' Giver \"Levels\"
v2 = a(1) \' Giver \"updatepl.asp\"

- Left/Right
tekst = \"Levels,updatepl.asp\"
v1 = Left(tekst, InStrRev(tekst,\",\")-1)
v2 = Mid(tekst, InStrRev(tekst,\",\")+1)


// Stingbat
Avatar billede tdaugaard Nybegynder
20. november 2000 - 23:26 #7
jeg har fundet din fejl.

Right(ret(1), Len(Ret(1) - InStrRev(Ret(1),\",\"))

sådan skal den se ud!

Når man bruger Right for at få # tegn bagfra skal man trække dem fra Len(string)
Avatar billede stingbat Nybegynder
20. november 2000 - 23:26 #8
... lille rettelse til split-funktionen...
v2 = a(UBound(a))  \' hvis der i variablen står mere end ét \",\" tager den, den sidste...
Avatar billede tdaugaard Nybegynder
20. november 2000 - 23:27 #9
stingbat:> aaalt for besværligt fandt jeg ud af.. det var bare en lille fejl i tue\'s egen kode.
InStrRev(Ret(1),\",\") giver dig jo ikke antal tegn ind i strengen bagfra, men forfra.
Avatar billede tue Nybegynder
20. november 2000 - 23:29 #10
Så virker det! Tak! :o)
Avatar billede stingbat Nybegynder
20. november 2000 - 23:33 #11
Ved godt den anden metode... men nu valgte jeg ikke lige at bruge den af en eller anden grund...!
Avatar billede tdaugaard Nybegynder
20. november 2000 - 23:35 #12
*g*
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