Filister og sortering
HejJeg 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> </p>
<p><strong><font color="#000000"><small> <%
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"> </font> </p>
</body>
</html>
