Avatar billede Jman Praktikant
12. august 2009 - 21:33 Der er 5 kommentarer og
1 løsning

Subscript out of range: '1'

Jeg har et problem med et stykke kode, der skal vise indhold samt det første billede i undermapper på en given sti. Når jeg har mere end 3 undermapper, får jeg fejlen

Microsoft VBScript runtime error '800a0009'
Subscript out of range: '1'


koden fejlen ved *****:

<%
   
strPhysicalPath = PAGES_TO_UPLOAD



    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFolder = objFSO.GetFolder(strPhysicalPath)

    For each Folder in objFolder.SubFolders 
      If Left(Folder.Name,1)<>"_" Then

    set fso = CreateObject("Scripting.fileSystemObject")
    set fold = fso.getFolder(Folder)
    fileCount = fold.files.count
    dim fNames()
    redim fNames(fileCount)
    cFcount = 0
    for each file in fold.files
        cFcount = cFcount + 1
        fNames(cFcount) = lcase(file.name)
    next
    for tName = 1 to fileCount
        for nName = (tName + 1) to fileCount
            if strComp(fNames(tName),fNames(nName),0)=1 then
                buffer = fNames(nName)
                fNames(nName) = fNames(tName)
                fNames(tName) = buffer
            end if
        next
    next
    for i = 1 to 1    '<-- ****** DENNE MELDER FEJL ******
        Forsiden = image & fNames(i)
        content = content & fNames(i) & "<br>"
    next
   
    Forsiden = LINK_TO_UPLOAD & "/" & Folder.name & "/" & Forsiden
    'Response.write ("<h2><img src='.." & Forsiden & "' ></h2>")

    Set fso = Nothing


        Response.Write("<h2><a class=menu href=""index.asp?SubDir=Avisen&Folder="&Folder.Name&"""><img src='.." & Forsiden & "' > Avisen, Uge "& Folder.Name & "</a></h2>")
      End if

    Next
    Set objFSO = Nothing
%>
Avatar billede Jman Praktikant
12. august 2009 - 21:40 #1
Har prøvet at ændre til
for i 1 to fileCount

men så får jeg fejl oppe i linjen "dim fNames() " med Type mismatch
Avatar billede mortvader Nybegynder
12. august 2009 - 21:47 #2
Prøv at se om ikke fejlen består i at filecount er nul.
Hvis du prøver at referere fNames(1) men længden af fNames er 0, så får du fejlen "subscript out of range"
Avatar billede Jman Praktikant
12. august 2009 - 21:55 #3
men hvordan kan det være at scriptet virker ved 3 mapper og ikke ved 4 ?
Avatar billede mortvader Nybegynder
12. august 2009 - 22:06 #4
Jeg har ikke testet dit script, men der er da i hvert fald en fejl her:

    cFcount = 0
    for each file in fold.files
        cFcount = cFcount + 1
        fNames(cFcount) = lcase(file.name)
    next

Arrays i vbscript er zerobased.
Derfor er første "item" i din array fNames(0) ikke fNames(1)
..så du må ændre den stump til:

    cFcount = 0
    for each file in fold.files
        fNames(cFcount) = lcase(file.name)
        cFcount = cFcount + 1
    next
Avatar billede Jman Praktikant
14. oktober 2010 - 11:24 #5
lægger du lige et svar :)
Avatar billede mortvader Nybegynder
19. oktober 2010 - 10:47 #6
Hej :)
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