THE CORRELLIAN TIMES
A special E-list has been established for the Correllian Times
The Correllian Times E-magazine is available free of charge. Help this
project and many others - buy a supporting membership to
The Correllian Times features articles, reports on events, photos, artwork, poetry, and more!
To download a .pdf copy of the magazine, click on the link below. Each
issue will have its own link, listed by date.
Past issues can be found
The Correllian Times is now Pagan World Times.
Check out the first issue below.
' In this demo, at least, we don't allow user to change directories...
' Change the DIRECTORY to point to any virtual directory of your choice.
CONST DIRECTORY = "/correllian times/pdfs/" ' relative path in virtual directories
' Specify one of these constants for "sortBy"...
CONST FILE_NAME = 0
'CONST FILE_EXT = 1
'CONST FILE_TYPE = 2
'CONST FILE_SIZE = 3
CONST FILE_CREATED = 1
'CONST FILE_MODIFIED = 5
'CONST FILE_ACCESSED = 6
' get requested sort order, if not first time here...
' (forward by name is default)
req = Request("sortBy")
If Len(req) < 1 Then sortBy = 1 Else sortBy = CInt(req)
req = Request("priorSort")
If Len(req) < 1 Then priorSort = 1 Else priorSort = CInt(req)
' did user ask for same sort? to reverse the order?
' but if so, then zap priorSort so clicking again will do forward!
If sortBy = priorSort Then
reverse = true
priorSort = -1
reverse = false
priorSort = sortBy
' now start the *real* code...
path = Server.MapPath( DIRECTORY )
Set fso = CreateObject("Scripting.FileSystemObject")
Set theCurrentFolder = fso.GetFolder( path )
Set curFiles = theCurrentFolder.Files
' And now a loop for the files
Dim theFiles( )
ReDim theFiles( 500 ) ' arbitrary size!
currentSlot = -1 ' start before first slot
' We collect all the info about each file and put it into one
' "slot" in our "theFiles" array.
For Each fileItem in curFiles
fname = fileItem.Name
fcreate = fileItem.DateCreated
currentSlot = currentSlot + 1
If currentSlot > UBound( theFiles ) Then
ReDim Preserve theFiles( currentSlot + 99 )
' note that what we put here is an array!
theFiles(currentSlot) = Array(fname,fcreate)
' files are now in the array...
' As noted, it is actually an ARRAY *OF* ARRAYS. Which makes
' picking the column we will sort on easier!
' ...size and sort it...
fileCount = currentSlot ' actually, count is 1 more, since we start at 0
ReDim Preserve theFiles( currentSlot ) ' really not necessary...just neater!
' First, determine which "kind" of sort we are doing.
' (VarType=8 means "string")
If VarType( theFiles( 0 )( sortBy ) ) = 8 Then
If reverse Then kind = 1 Else kind = 2 ' sorting strings...
If reverse Then kind = 3 Else kind = 4 ' non-strings (numbers, dates)
' A simple bubble sort for now...easier to follow the code...
For i = fileCount TO 0 Step -1
minmax = theFiles( 0 )( sortBy )
minmaxSlot = 0
For j = 1 To i
Select Case kind ' which kind of sort are we doing?
' after the "is bigger/smaller" test (as appropriate),
' mark will be true if we need to "remember" this slot...
Case 1 ' string, reverse...we do case INsensitive!
mark = (strComp( theFiles(j)(sortBy), minmax, vbTextCompare ) < 0)
Case 2 ' string, forward...we do case INsensitive!
mark = (strComp( theFiles(j)(sortBy), minmax, vbTextCompare ) > 0)
Case 3 ' non-string, reverse ...
mark = (theFiles( j )( sortBy ) < minmax)
Case 4 ' non-string, forward ...
mark = (theFiles( j )( sortBy ) > minmax)
' so is the current slot bigger/smaller than the remembered one?
If mark Then
' yep, so remember this one instead!
minmax = theFiles( j )( sortBy )
minmaxSlot = j
' is the last slot the min (or max), as it should be?
If minmaxSlot <> i Then
' nope...so do the needed swap...
temp = theFiles( minmaxSlot )
theFiles( minmaxSlot ) = theFiles( i )
theFiles( i ) = temp
' Ta-da! The array is sorted!
' With the array nicely sorted, this part is a piece of cake!
For i = 0 To fileCount
" & vbNewLine
For j = 0 To UBound( theFiles(i) )
tom = theFiles(i)(j)
DAN = Right(tom,3)
if DAN = "pdf" OR DAN = "PDF" Then
Response.Write "" & vbNewLine
<%=Replace((theFiles(i)(j)), ".pdf", "")%>
|" & Replace((theFiles(i)(j)), ".pdf", "") & "" & vbNewLine