Avatar billede cyrez Nybegynder
17. januar 2003 - 21:33 Der er 7 kommentarer

Rekrusiv funktion

Først lidt kode...

<%
'Start den rekrisive function
Function Rek(Dir)
   
    'Henter listen af dir.
    strDir = objFTP.sListDir(Dir,"16")
    Response.write strDir & "<br><br>"

    If strDir <> "" Then
    'parse the listing til et array
    aList = Split(strDir,";")
    For nX = 0 to UBound(aList)
       
        'Response.Write aList(nX) & "<br>"
        'Response.Write Dir & "/" & aList(nX) & "<br>"

        'Her kalder den sig selv
        Call Rek(Dir & "/" & aList(nX))

    Next
    End If

    strFile = objFTP.sListDir("","128")
    Response.write strFile  & "<br><br>"

End Function
'Slut den rekrisive function
%>

Problemet er når den kalder sig selv skriver den:
"This array is fixed or temporarily locked: 'aList'"

Vil det sige at jeg har lavet noget forkert eller kan man ikke lave rekrusive funktioner i asp???

MVH Jesper
Avatar billede erikjacobsen Ekspert
17. januar 2003 - 21:44 #1
Du skal vist bare

Function Rek(Dir)
Dim alist
...osv

dvs erklære variablen i funktionen
Avatar billede jespernaur Nybegynder
17. januar 2003 - 21:52 #2
og det hedder 'rekursiv', ikke 'rekrusiv' eller 'rekrisiv'
Avatar billede cyrez Nybegynder
17. januar 2003 - 21:54 #3
Var kommet til at lave et array længere nede som også hed alist så det var fejlen men du gjorde mig opmærksom på det så point til dig og Tak
Avatar billede cyrez Nybegynder
17. januar 2003 - 21:55 #4
Det var lige godt utroligt så god jeg er til at stave...
Avatar billede i_know Nybegynder
17. januar 2003 - 21:56 #5
Enig. Et lille tip: hvis du sætter <%option explicit%> som den aller første linie på siden, så bliver du tvunget til at Dim'e variable inden du bruger dem. Det gør dels at man tænker mere over hvordan man bruger sine variable, men vigtigst af alt: Man opdager lynhurtigt hvis man har stavet et variabelnavn forskelligt på forskellige steder i koden.
Avatar billede erikjacobsen Ekspert
17. januar 2003 - 22:00 #6
Er der virkelig point til farmand her :)

De andre variabler du kun bruger i din rekursive funktion bør
du dimme på samme måde.
Avatar billede erikjacobsen Ekspert
17. januar 2003 - 22:00 #7
Næh - kun hvis jeg svarer
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