Avatar billede Slettet bruger
01. marts 2005 - 10:32 Der er 4 kommentarer

Filister og sortering

Hej
Jeg har et script der viser alle filer i en mappe, det viser for så vidt ok, men jeg får en fejl når jeg prøver at sortere på titel, sidst oprettet m.v. er der nogen der kan se fejlen? På forhånd tak. Her er scriptet:
<html>

<head>
<title>FilLister</title>
</head>

<body>

<p>&nbsp;</p>

<p><strong><font color="#000000"><small>&nbsp;<%
CONST DIRECTORY="/"
CONST FILE_NAME=0
CONST FILE_EXT=1
CONST FILE_TYPE=2
CONST FILE_SIZE=3
CONST FILE_CREATED=3
CONST FILE_ACCESSED=5
Skriv=1
req=Request("sortBy")
If Len(req)<1 Then sortBy=0 Else sortBy=CInt(req)
req=Request("priorSort")
If Len(req)<1 Then priorSort=-1 Else priorSort=CInt(req)
If sortBy=priorSort Then
    reverse=true
    priorSort=-1
Else
    reverse=false
    priorSort=sortBy
End If
dim strPathInfo, strPhysicalPath,objFSO, objFile, objFileItem, objFolder, objFolderContents
    strPathInfo=Request.ServerVariables("PATH_INFO")
    strPhysicalPath=Server.MapPath(strPathInfo)
    Set objFSO=CreateObject("Scripting.FileSystemObject")
    set objFile=objFSO.GetFile(strPhysicalPath)
    set objFolder=objFile.ParentFolder
    set objFolderContents=objFolder.Files
Set curFiles=objFolder.Files
Dim theFiles()
ReDim theFiles(500)
currentSlot=-1
For Each fileItem in curFiles
    strFileTitle=fileItem.Name
    strFileName=fileItem.Name
    fext=InStrRev(strFileName, "." )
    If fext < 1 Then fext = "" Else fext = Mid(strFileName,fext+1)
    ftype=fileItem.Type
    fsize=fileItem.Size
    fcreate=fileItem.DateCreated
    fcreateSlut=instr(fcreate," ")
    fcreate=left(fcreate,fcreateSlut)
    fmod=fileItem.DateLastModified
    fmodSlut=instr(fmod," ")
    fmod=left(fmod,fmodSlut)
    faccess=fileItem.DateLastAccessed
    txtTitleStartTag=Server.HTMLEncode("<TITLE>")
    txtTitleEndTag=Server.HTMLEncode("</TITLE>")
    txtPathtoFile=objFolder & "\"&fileitem.name
    if fext="htm" or fext="html" then
        Set textStream=objFSO.OpenTextFile(txtPathtoFile)
        Do While NOT textStream.AtEndOfStream
            txtLine=UCase(Server.HTMLEncode(textStream.ReadLine))
            if Instr(1,txtLine,txtTitleStartTag,1) then
                strFileTitle=Replace(txtLine, txtTitleStartTag,"",1,1,1)
            end if
            if Instr(1,strFileTitle, txtTitleEndTag,1) then
                strFileTitle=Replace(strFileTitle, txtTitleEndTag,"",1,1,1)
            Exit Do
            end if
        Loop
    end if
    ftitle=lcase(strFileTitle)
    fname=lcase(strFileTitle)
    fnameLenght=len(fname)
    fnamePunkt=fnameLenght-3
    if mid(fname,fnamePunkt,1)="." then
        fnameSlut=instrRev(fname,".")
        If fnameSlut>0 Then fname = left(fname,fnameSlut-1)
    end if
    fname="<a href='"&strFileName&"'>"&fname&"</a>"
    currentSlot=currentSlot+1
    If currentSlot>UBound(theFiles) Then
        ReDim Preserve theFiles(currentSlot+99)
    End If
    theFiles(currentSlot)=Array(fname,fext,fcreate,fmod)
Next
fileCount=currentSlot
ReDim Preserve theFiles( currentSlot )
If VarType(theFiles(0)(sortBy))=8 Then
    If reverse Then kind=1 Else kind=2
Else
    If reverse Then kind=3 Else kind=4
End If
For i=fileCount TO 0 Step -1
    minmax=theFiles(0)(sortBy)
    minmaxSlot=0
    For j=1 To i
        Select Case kind
        Case 1
            mark=(strComp(theFiles(j)(sortBy),minmax,vbTextCompare)< 0)
        Case 2
            mark=(strComp(theFiles(j)(sortBy),minmax,vbTextCompare)>0)
        Case 3
            mark=(theFiles(j)(sortBy)<minmax)
        Case 4
            mark=(theFiles(j)(sortBy)>minmax)
        End Select
        If mark Then
            minmax=theFiles(j)(sortBy)
            minmaxSlot=j
        End If
    Next
    If minmaxSlot<>i Then
        temp=theFiles(minmaxSlot)
        theFiles(minmaxSlot)=theFiles(i)
        theFiles(i)=temp
    End If
Next
%> </small></font></strong></p>

<form Name="doSort" Method="Get">
  <input type="hidden" name="priorSort" value="<%=priorSort %>"><input type="hidden"
  name="sortBy" value="-1">
</form>

<table Border="1" CellPadding="5" bgcolor="#E6E6E6" bordercolor="#FFFFFF" cellspacing="0"
width="500">
  <tr>
    <td colspan="4" bgcolor="#AFB9CA"><strong><font color="#000000">filer <br>
    <em>Klik på filen under Titel for at åbne filen.</em></font></strong></td>
  </tr>
  <tr>
    <td><small><font color="#000000"><strong><a HREF="java script:reSort(0);">Titel</a> </strong></font></small></td>
    <td><small><font color="#000000"><strong><a HREF="java script:reSort(1);">Type</a> </strong></font></small></td>
    <td><small><font color="#000000"><strong><a HREF="java script:reSort(2);">Oprettet</a> </strong></font></small></td>
    <td><small><font color="#000000"><strong><a HREF="java script:reSort(3);">Sidst Opd</a> </strong></font></small></td>
  </tr>
<%
For i=0 To fileCount
    if Skriv=1 then
        %>
  <tr>
<%
    end if
    Skriv=0
    For j=0 To UBound(theFiles(i))
            FilType=theFiles(i)(1)
            Select Case FilType
                Case "xls" skriv=1
                Case "doc" skriv=1
                Case "htm" skriv=1
                Case "html" skriv=1
              Case "pdf" skriv=1

            End Select
        if Skriv=1 then
        %>
    <td><%=theFiles(i)(j)%>
</td>
<%
        end if
    Next
    if Skriv=1 then
    %>
  </tr>
<%
    end if
Next
%>
</table>

<p><font color="#000000">&nbsp;</font> </p>
</body>
</html>
Avatar billede olebole Juniormester
01. marts 2005 - 11:59 #1
<ole>

Måske, du skulle vælge en mere hensigtsmæssig kategori at spørge i  ;o)

/mvh
</bole>
Avatar billede Slettet bruger
01. marts 2005 - 12:37 #2
Kan du præsicere hvad du mener, det er jo javascriptet der giver fejl ?
Avatar billede roenving Novice
03. marts 2005 - 13:47 #3
-- der er da ikke noget javascript, men en masse vbscript ...
Avatar billede Slettet bruger
12. september 2007 - 12:08 #4
Lukker
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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