Avatar billede sp Nybegynder
21. marts 2002 - 21:01 Der er 2 kommentarer og
1 løsning

Hvorfor virker dette ikke

Blot for at teste denne funktion, som ikke virker odentligt, har jeg lavet en tekst-streng.
Den returnerer kun én tal. Den skulle finde flere tal med komma imellem. Hvad er fejlen?

M.v.h.
Søren Peter

Function Loopnow(Tekst)
A_Start = 1
  Str1 = vbCrlf                         ' Linjeskift
  Str2 = " "                             ' Mellemrum
  Str3 = "<"                             ' Start på Html- kode
  Str4 = ". "                             ' Punktum + mellemrum
  Str5 = "." & vbCrlf             ' Punktum + linjeskift
  Str6 = ","                             ' Komma ("Tumpesikret" - Normalt skriver man komma + mellemrum i sætninger)
  do until A_Start >= len(Tekst)
      LinkChr = InStr(A_Start, Tekst, "#")
       
            If InStr(LinkChr,Tekst, Str1) > 0 Then sVals = InStr(LinkChr,Tekst, Str1)
            If InStr(LinkChr,Tekst, Str2) > 0 Then sVals = sVals & " " & InStr(LinkChr,Tekst, Str2)
            If InStr(LinkChr,Tekst, Str3) > 0 Then sVals = sVals & " " & InStr(LinkChr,Tekst, Str3)
            If InStr(LinkChr,Tekst, Str4) > 0 Then sVals = sVals & " " & InStr(LinkChr,Tekst, Str4)
            If InStr(LinkChr,Tekst, Str5) > 0 Then sVals = sVals & " " & InStr(LinkChr,Tekst, Str5)
            If InStr(LinkChr,Tekst, Str6) > 0 Then sVals = sVals & " " & InStr(LinkChr,Tekst, Str6)
         
        ' Sørg derefter for at det er et gyldigt Array
            sVals = Trim(sVals)
            sVals = Replace(sVals," ",",")
      ' Find så den laveste tal for en position, som må være der hvor linket slutter
            aVals = Split(sVals,",")
          iLowest = aVals(0)
            For iCnt = 0 to UBound(aVals)
            If(aVals(iCnt) < iLowest) Then iLowest = aVals(iCnt)
          Next
        EndPos = iLowest
            Response.Write EndPos
            if Int(LinkChr) = Int(InStrRev(Tekst, "#")) then
              Loopnow = EndPos & ","
                A_Start = Len(Tekst)
          else
          A_Start = EndPos
          end if
            Loop
End Function
Loopnow("Virker det her eller# hvad?. eller #virker det, ikke#")
Avatar billede sp Nybegynder
21. marts 2002 - 22:27 #1
Jeg har pillet det ud fra noget andet kode. Det er her fejlen er.
Den starter med  position 1 og derefter så finder den forskellige positioner i teksten alt efter hvilke forekomster der er. Jeg skal have fat i  det laveste tal for positionen.
Derefter skal den så gå videre i strengen og finde den næste position. Problemet er at den skulle  returnere flere positioner men den returnerer kun en.
Løkken som kører inde i loopet skal køre en "omgang" hver gang  LinkChr får en ny position.
Avatar billede coltau Juniormester
22. marts 2002 - 10:46 #2
Hvordan skal funktionen returnere resultatet. ?
og hvordan skal resultatet se ud i dit eksempel. ?
Avatar billede sp Nybegynder
22. marts 2002 - 10:59 #3
Jeg prøver selv
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