Omvendt rækkefølge

Tags:    asp

Hej alle.

Jeg har lavet et lille script der skriver filerne der ligger i en mappe. Koden kan ses herunder..

Hvordan får jeg den til at udskrive i omvendt rækkefølge?

<%
sub ListFolderContents(path)

dim fs, folder, file, item, url

set fs = CreateObject("Scripting.FileSystemObject")
set folder = fs.GetFolder(path)

for each item in folder.Files

arrM = split(item.name,".")

response.write item.name & "<br>"

next
end sub
%>



8 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Hvorfor skulle den vende rækkefølge om ved at gøre det på den måde?


Godt spørgsmål (hvis man ikke kan det mest elementære programmering).

result = item.name & "<br/>" & result
"" = "1" & "<br/> & ""

result = item.name & "<br/>" & result
"1<br/>" = "2" & "<br/> & "1<br/>"

result = item.name & "<br/>" & result
"2<br/>1<br/>" = "3" & "<br/> & "2<br/>1<br/>"

result = item.name & "<br/>" & result
"3<br/>2<br/>1<br/>" = "4" & "<br/> & "3<br/>2<br/>1<br/>"

Håber du ser ideen.



Dim en Collection, så kan du både forfra og bagfra:

<%
Sub ListFolderContents(path)

Dim fs, Files, Item, i
Dim Col As New Collection

Set fs = CreateObject("Scripting.FileSystemObject")
Set Files = fs.GetFolder(path).Files

For Each Item In Files
Col.Add Item
Next

For i = Col.Count To 1 Step -1
Responce.Write Col.Item(i).Name & "<br>"
Next i

End Sub
%>




ARgh! Brug dog en kode boks!!

Fold kodeboks ind/udKode 




Hvad med:

<%
sub ListFolderContents(path)

dim fs, folder, file, item, url
dim result
result = ""
set fs = CreateObject("Scripting.FileSystemObject")
set folder = fs.GetFolder(path)

for each item in folder.Files

arrM = split(item.name,".")

result = item.name & "<br/>" & result

next

response.write result

end sub
%>



Hvorfor skulle den vende rækkefølge om ved at gøre det på den måde?



Dim en Collection, så kan du både forfra og bagfra:

<%
Sub ListFolderContents(path)

Dim fs, Files, Item, i
Dim Col As New Collection

Set fs = CreateObject("Scripting.FileSystemObject")
Set Files = fs.GetFolder(path).Files

For Each Item In Files
Col.Add Item
Next

For i = Col.Count To 1 Step -1
Responce.Write Col.Item(i).Name & "<br>"
Next i

End Sub
%>


Fin løsning, men ...

Der er 2 løkker, istedet for et.
Du fylder en Collection ud med objecter, tager tid og plads.
Du laver multible writes, istedet for en enkelt større.

Og så ændrer det ikke på at spørgeren ikke engang gad forsøge at køre kode forslaget, men spørger tilbage med det samme istedet for at bruge 2 sekunder på at analysere koden.



Tak for svarene..

Jeg kan desværre ikke få din løsning til at virke Søren.

Jeg prøvede det skam også Jonatan og fandt hurtigt ud af at det virkede.. Men ville bare lige vide hvordan og hvorfor.

Min kode ser sådan her ud:

<%
sub ListFolderContents(path)

dim fs, folder, file, item, url

set fs = CreateObject("Scripting.FileSystemObject")
set folder = fs.GetFolder(path)

for each item in folder.Files

arrM = split(item.name,".")

if right(item.name,3) = "TXT" or right(item.name,3) = "txt" Then pdfsize = "16" else pdfsize = "1" end if
%>
<tr target="_blank" onClick="parent.location='download.asp?type=<%=right(item.name,3)%>&name=<%=arrM(0)%>'" onMouseOver="style.cursor='hand',bgColor='#F3F2ED'" onMouseOut="bgColor='#ffffff'">
<td align="left" style="border-bottom:solid 1pt #EAEBE5;">       <%if right(item.name,3) = "PDF" or right(item.name,3) = "pdf" Then response.Write("<img src='images/pdf.gif' border='0'> ") end if%><%if right(item.name,3) = "TXT" or right(item.name,3) = "txt" Then response.Write("<img src='images/pdf.gif' border='0'> LAB nr. ") end if%><%if right(item.name,3) = "XLS" or right(item.name,3) = "xls" then response.Write("<img src='images/xls.gif' border='0'> ") end if%><%=arrM(0)%></td>
<td align="right" style="border-bottom:solid 1pt #EAEBE5;"><%if item.size > 1024 then response.write(Round(item.Size / 1024 * pdfsize) & " KB") else response.write(item.size & " Bytes") end if%></td>
<td align="right" style="border-bottom:solid 1pt #EAEBE5;"><%if right(item.name,3) = "PDF" or right(item.name,3) = "pdf" Then response.Write("PDF-fil") end if%><%if right(item.name,3) = "TXT" or right(item.name,3) = "txt" Then response.Write("PDF-fil") end if%><%if right(item.name,3) = "XLS" or right(item.name,3) = "xls" then response.Write("XLS-fil") end if%></td>
<td align="right" style="border-bottom:solid 1pt #EAEBE5;"><%=item.datelastmodified%> </td>
</tr>
<%

next
end sub
%>

Så jeg kan ikke bare sådan lige sætte "result" til at være lig det. :(



Det prøver jeg lige så.. :) I får den her:

Fold kodeboks ind/udKode 




t