Avatar billede Remo_Munk_Olesen Nybegynder
23. maj 2013 - 06:58 Der er 25 kommentarer og
1 løsning

skal vise den nyeste fil

Jeg har fundet dette script som viser filer fra en mappe.
Hvor/Hvordan skal jeg ændre således at den kun viser 1 fil fra mappen og det er den nyeste fil som vises.

<table>
<%
Dim FSO, F, Filer, fil
Dim kolonner
kolonner = 5

Dim i
i = 0

Set FSO = CreateObject("Scripting.FileSystemObject")
Set F = FSO.GetFolder(Server.Mappath("."))
Set Filer = F.Files
For Each fil In Filer
   
    Select Case lcase(FSO.GetExtensionName(fil))
        ' Tilladte filtyper...
        Case "asp", "txt", "shtml", "html"
            If i mod kolonner = 0 Then
%>
            <tr>
        <% End If %>
    <td><a href="<%= fil.Name %>" title="Sidst ændret: <%= fil.DateLastModified %>, oprettet: <%= fil.DateCreated %>"><%= fil.Name %></a></td>
<%   
    i = i + 1
        If i mod kolonner = 0 Then
%>
    </tr>
<%         End If
    End Select
Next

IF i mod kolonner > 0 Then
%>
</tr>   
<% end if %>
</table>
Avatar billede claes57 Ekspert
23. maj 2013 - 09:36 #1
her er det kun en linje med nyeste (og 'ingen' hvis filer ikke findes)

<table>
<%
Dim FSO, F, Filer, fil
Dim kolonner
kolonner = 5

Dim i, fundet, filnavn, fildato, filrettet
i = 0
fundet=0
filnavn=""

Set FSO = CreateObject("Scripting.FileSystemObject")
Set F = FSO.GetFolder(Server.Mappath("."))
Set Filer = F.Files
For Each fil In Filer
   
    Select Case lcase(FSO.GetExtensionName(fil))
        ' Tilladte filtyper...
        Case "asp", "txt", "shtml", "html"
            If fundet=0 then
                filnavn=fil.Name
                fildato=fil.DateCreated
                filrettet=fil.DateLastModified
            else
                if fildato > fil.DateCreated then
                    filnavn=fil.Name
                    fildato=fil.DateCreated
                    filrettet=fil.DateLastModified
                end if
            end if
            fundet=1
        Case else
    End Select
    If filnavn <> "" then
        response.write "<tr>"
        response.write "<td><a href=""" & filnavn & """ title="""Sidst ændret: " & filrettet & ", oprettet: " & fildato & """>" & filnavn & "</a></td>"
        response.write "</tr>"
    else
        response.write "<tr><td>Ingen fil fundet</td></tr>"
    end if
%>
</table>
Avatar billede Remo_Munk_Olesen Nybegynder
23. maj 2013 - 10:12 #2
Jeg får denne fejl

Microsoft VBScript compilation  error '800a0401'

Expected end of statement

/test/vis1fil.asp, line 46
response.write "<td><a href=""" & filnavn & """ title="""Sidst ændret: " & filrettet & ", oprettet: " & fildato & """>" & filnavn & "</a></td>"
---------------------------------------------------------^
Avatar billede Remo_Munk_Olesen Nybegynder
23. maj 2013 - 10:14 #3
.........^ peger på s i sidst ændret
Avatar billede claes57 Ekspert
23. maj 2013 - 10:41 #4
response.write "<td><a href=""" & filnavn & """ title=""Sidst ændret: " & filrettet & ", oprettet: " & fildato & """>" & filnavn & "</a></td>"

Der var en " for meget (der skal være 2)
Avatar billede claes57 Ekspert
23. maj 2013 - 10:45 #5
og vend lige en > til en <
så det bliver:
if fildato < fil.DateCreated then
men hvis det skulle være den senest ændrede, så skift den linje ud med
if filrettet < fil.DateLastModified then
Avatar billede Remo_Munk_Olesen Nybegynder
23. maj 2013 - 15:48 #6
Kan ikke få det til at virke.
Måske fordi jeg bruger det 2 gange på mit website

jeg har 2 asp filer

*** visfil.asp *** (her viser den alle filer i mappen)

<table>
<%
Dim FSO, F, Filer, fil, fundet, filnavn
Dim kolonner
kolonner = 1

Dim i
i = 0

Set FSO = CreateObject("Scripting.FileSystemObject")
Set F = FSO.GetFolder(Server.Mappath("pdf"))
Set Filer = F.Files
For Each fil In Filer
   
    Select Case lcase(FSO.GetExtensionName(fil))
        ' Tilladte filtyper...
        Case "asp", "txt", "shtml", "html", "pdf"
            If i mod kolonner = 0 Then
%>
            <tr>
        <% End If %>
    <td align="left"><img src="images/pfd.jpg" /> <a href="pdf/<%= fil.Name %>" title="Sidst ændret: <%= fil.DateLastModified %>, oprettet: <%= fil.DateCreated %>"><%= fil.Name %></a></td>

<%   
    i = i + 1
        If i mod kolonner = 0 Then
%>

    </tr>
<%         End If
    End Select
Next

IF i mod kolonner > 0 Then
%>
</tr>   
<% end if %>
</table>


*** vis1fil.asp *** (her skal/skulle den vise den nyeste uploaded fil i mappen)

<table>
<%
'Dim FSO, F, Filer, fil
'Dim kolonner
kolonner = 1

'Dim i, fundet, filnavn, fildato, filrettet
i = 0
fundet=0
filnavn=""

Set FSO = CreateObject("Scripting.FileSystemObject")
Set F = FSO.GetFolder(Server.Mappath("pdf"))
Set Filer = F.Files
'For Each fil In Filer
   
    Select Case lcase(FSO.GetExtensionName(fil))
        ' Tilladte filtyper...
        Case "asp", "txt", "shtml", "html", "pdf"
            If fundet=0 then
                filnavn=fil.Name
                fildato=fil.DateCreated
                filrettet=fil.DateLastModified
            else
                if fildato < fil.DateCreated then
                    filnavn=fil.Name
                    fildato=fil.DateCreated
                    filrettet=fil.DateLastModified
                end if
            end if
            fundet=1
        Case else
    End Select
    If filnavn <> "" then
        response.write "<tr>"
        response.write "<img src="images/pfd.jpg" />" "<td><a href=""" & filnavn & """ title=""Sidst ændret: " & filrettet & ", oprettet: " & fildato & """>" & filnavn & "</a></td>"
        response.write "</tr>"
    else
        response.write "<tr><td>Ingen fil fundet</td></tr>"
    end if
%>
</table>
Avatar billede claes57 Ekspert
23. maj 2013 - 16:17 #7
my bad...
der er en ' i starten af
'For Each fil In Filer
og den skal ikke være der, så ret til
For Each fil In Filer
Avatar billede claes57 Ekspert
23. maj 2013 - 16:21 #8
der skal heller ikke ' i starten af
'Dim FSO, F, Filer, fil
'Dim kolonner
og
'Dim i, fundet, filnavn, fildato, filrettet
hvis den er i en fil for sig.

Hvis den includes i sammen fil som den, der viser alle, så skal det være:
'Dim FSO, F, Filer, fil
'Dim kolonner
og
'Dim i
Dim fundet, filnavn, fildato, filrettet

da de sidste 4 variable er nye (ikke i den første kode)
Avatar billede Remo_Munk_Olesen Nybegynder
24. maj 2013 - 08:30 #9
Jeg tror vi er ved at være i mål.

Men jeg får denne fejl

Microsoft VBScript compilation  error '800a0410'

Invalid 'for' loop control variable

/test/visfil.asp, line 24
For Each fil In Filer
-------------^

koden er vist i indlæg #6, hvor filen hedder visfil.asp
Avatar billede claes57 Ekspert
24. maj 2013 - 09:42 #10
sæt linjen
set FSO=nothing

ind de to steder lige før linjen
</table>

den skal stå i asp-delen, dvs også før %> der er lige før </table>
Avatar billede Remo_Munk_Olesen Nybegynder
24. maj 2013 - 12:25 #11
Hmmm således

<%   
    i = i + 1
        If i mod kolonner = 0 Then set FSO=nothing
%>

    </tr>
<%         End If
    End Select
Next

IF i mod kolonner > 0 Then set FSO=nothing
%>
</tr>   

<% end if %>
</table>
Avatar billede claes57 Ekspert
24. maj 2013 - 13:28 #12
slet ikke

den slutter med
IF i mod kolonner > 0 Then
%>
</tr>   
<% end if
set FSO=nothing
%>
</table>

og i vis1fil slutter du med
    else
        response.write "<tr><td>Ingen fil fundet</td></tr>"
    end if
set FSO=nothing
%>
</table>
Avatar billede Remo_Munk_Olesen Nybegynder
26. maj 2013 - 22:23 #13
Nu har jeg prøvet det med den melder fejl...

Microsoft VBScript compilation  error '800a0410'

Invalid 'for' loop control variable

/test/visfil.asp, line 24
For Each fil In Filer
-------------^


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>vis fil</title>
</head>

<body>

<table>
<%
'Dim FSO, F, Filer, fil, fundet, filnavn
'Dim fundet, filnavn, fildato, filrettet
'Dim kolonner
kolonner = 1

'Dim i
i = 0

Set FSO = CreateObject("Scripting.FileSystemObject")
Set F = FSO.GetFolder(Server.Mappath("pdf"))
Set Filer = F.Files
For Each fil In Filer
   
    Select Case lcase(FSO.GetExtensionName(fil))
        ' Tilladte filtyper...
        Case "asp", "txt", "shtml", "html", "pdf"
            If i mod kolonner = 0 Then
%>
            <tr>
        <% End If %>
    <td align="left"><img src="images/pfd.jpg" /> <a href="pdf/<%= fil.Name %>" title="Sidst ændret: <%= fil.DateLastModified %>, oprettet: <%= fil.DateCreated %>"><%= fil.Name %></a></td>

<%   
    i = i + 1
        If i mod kolonner = 0 Then
%>

    </tr>
<%         End If
    End Select
Next

IF i mod kolonner > 0 Then
%>
</tr>   

<% end if
  set FSO=nothing %>
</table>


</body>

</html>
Avatar billede claes57 Ekspert
27. maj 2013 - 09:52 #14
hvorfor er der nu pinger ' foran Dim (der er flere linjer) Du vil vel definere dine variable (bla 'fil')
Avatar billede Remo_Munk_Olesen Nybegynder
27. maj 2013 - 11:35 #15
Hmmm.

Det er vel fordi at vis1fil.asp bliver inkluderet på min default.asp side først og bagefter kommer visfil.asp som også bliver inkluderet.

Så vil den ikke accepter variablerne fra visfil.asp da de bruges i vis1fil.asp først.
Avatar billede claes57 Ekspert
27. maj 2013 - 13:53 #16
ok - prøv med denne visfil.asp

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ (...)
<html xmlns="http://www.w3.org/ (...)

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>vis fil</title>
</head>

<body>

<table>
<%
Dim FSO2, F2, Filer2, fil2
'Dim fundet, filnavn, fildato, filrettet
Dim kolonner2
kolonner = 1

Dim i2
i2 = 0

Set FSO2 = CreateObject("Scripting.FileSystemObject")
Set F2 = FSO2.GetFolder(Server.Mappath("pdf"))
Set Filer2 = F2.Files
For Each fil2 In Filer2
   
    Select Case lcase(FSO2.GetExtensionName(fil))
        ' Tilladte filtyper...
        Case "asp", "txt", "shtml", "html", "pdf"
            If i2 mod kolonner2 = 0 Then response.write "<tr>"
        %>
    <td align="left"><img src="images/pfd.jpg" /> <a href="pdf/<%= fil2.Name %>" title="Sidst ændret: <%= fil2.DateLastModified %>, oprettet: <%= fil2.DateCreated %>"><%= fil2.Name %></a></td>

<%   
    i2 = i2 + 1
        If i2 mod kolonner2 = 0 Then response.write "</tr>"
    End Select
Next

IF i2 mod kolonner2 > 0 Then response.write "</tr>"
set FSO2=nothing
%>
</table>


</body>

</html>
Avatar billede claes57 Ekspert
27. maj 2013 - 13:54 #17
der mengler et 2 i linjen
Select Case lcase(FSO2.GetExtensionName(fil))
skal være
Select Case lcase(FSO2.GetExtensionName(fil2))
Avatar billede Remo_Munk_Olesen Nybegynder
27. maj 2013 - 14:11 #18
Microsoft VBScript compilation  error '800a03fc'

Expected 'Next'

/test/visfil.asp, line 40

linie 40:
set FSO2=nothing


jeg skal forhøje mine point på denne opgave
Avatar billede claes57 Ekspert
27. maj 2013 - 14:42 #19
nyere asp kan måske ikke lide mine if-then i en linje - prøv med

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ (...)
<html xmlns="http://www.w3.org/ (...)

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>vis fil</title>
</head>

<body>

<table>
<%
Dim FSO2, F2, Filer2, fil2
'Dim fundet, filnavn, fildato, filrettet
Dim kolonner2
kolonner2 = 1

Dim i2
i2 = 0

Set FSO2 = CreateObject("Scripting.FileSystemObject")
Set F2 = FSO2.GetFolder(Server.Mappath("pdf"))
Set Filer2 = F2.Files
For Each fil2 In Filer2
   
    Select Case lcase(FSO2.GetExtensionName(fil2))
        ' Tilladte filtyper...
        Case "asp", "txt", "shtml", "html", "pdf"
            If i2 mod kolonner2 = 0 Then
                response.write "<tr>"
            end if
        %>
    <td align="left"><img src="images/pfd.jpg" /> <a href="pdf/<%= fil2.Name %>" title="Sidst ændret: <%= fil2.DateLastModified %>, oprettet: <%= fil2.DateCreated %>"><%= fil2.Name %></a></td>

<%   
    i2 = i2 + 1
    If i2 mod kolonner2 = 0 Then
        response.write "</tr>"
    end if
    End Select
Next

IF i2 mod kolonner2 > 0 Then
    response.write "</tr>"
end if
set FSO2=nothing
%>
</table>


</body>

</html>
Avatar billede Remo_Munk_Olesen Nybegynder
27. maj 2013 - 17:06 #20
Microsoft VBScript compilation  error '800a03fc'

Expected 'Next'

/test/visfil.asp, line 46
Avatar billede claes57 Ekspert
27. maj 2013 - 17:25 #21
jeg tror, fejlen stammer fra vis1fil.asp - kom lige med den aktuelle kode i den
Avatar billede Remo_Munk_Olesen Nybegynder
27. maj 2013 - 19:49 #22
vis1fil.asp

<table>
<%
Dim FSO, F, Filer, fil
Dim kolonner
kolonner = 1

Dim i, fundet, filnavn, fildato, filrettet
i = 0
fundet=0
filnavn=""

Set FSO = CreateObject("Scripting.FileSystemObject")
Set F = FSO.GetFolder(Server.Mappath("pdf"))
Set Filer = F.Files
For Each fil In Filer
   
    Select Case lcase(FSO.GetExtensionName(fil))
        ' Tilladte filtyper...
        Case "asp", "txt", "shtml", "html", "pdf"
            If fundet=0 then
                filnavn=fil.Name
                fildato=fil.DateCreated
                filrettet=fil.DateLastModified
            else
                if fildato < fil.DateCreated then
                    filnavn=fil.Name
                    fildato=fil.DateCreated
                    filrettet=fil.DateLastModified
                end if
            end if
            fundet=1
        Case else
    End Select
    If filnavn <> "" then
        response.write "<tr>"
        response.write "<td><a href=""" & filnavn & """ title=""Sidst ændret: " & filrettet & ", oprettet: " & fildato & """>" & filnavn & "</a></td>"
        response.write "</tr>"
    else
        response.write "<tr><td>Ingen fil fundet</td></tr>"
    end if
set FSO=nothing   
%>
</table>
Avatar billede claes57 Ekspert
27. maj 2013 - 20:23 #23
der mangler en next... jeg har lagt den ind i stumpen her

          end if
            fundet=1
        Case else
    End Select
Next
    If filnavn <> "" then
        response.write "<tr>"
        response.write "<td><a href=""" & filnavn & """ title=""Sidst ændret: " & filrettet & ", oprettet: " & fildato & """>" & filnavn & "</a></td>"
        response.write "</tr>"
    else
        response.write "<tr><td>Ingen fil fundet</td></tr>"
    end if
Avatar billede Remo_Munk_Olesen Nybegynder
27. maj 2013 - 20:49 #24
Så var den der 1000 1000 1000 tak for hjælpen og din tålmodighed

Drop et svar, så skal du høste dine fortjente point.

mvh.

Remo
Avatar billede claes57 Ekspert
27. maj 2013 - 20:58 #25
ok... en lidt sej kamp.
Avatar billede Remo_Munk_Olesen Nybegynder
04. juni 2013 - 01:20 #26
Claes57.
Blot et tillægs spørgsmål.

Hvorfor begynder min visfil.asp
og melde om en loop fejl

Microsoft VBScript compilation  error '800a03fb'

Expected 'Loop'

/test/visfil.asp, line 47

Kan man ikke includere et dataudtræk på sit website uden, at visfil  brokker sig.

visgenk.asp


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type"/>
<title>Vis Genralforsamling</title>
</head>

<body>

<table style="width: 100%">
                <% Set Query = Conn.Execute(" SELECT TOP 1 * FROM general order by dato desc")
                if  Query.EOF then %>
                 
                <tr>
                                <td>Ingen Indkald pt.
                                    <%end if%>
                                    <% Do until Query.EOF %>
                                    <% =Replace(Query("tekst"),vbcrlf,"<br>" & " ")%>
</td>
                </tr>
                <%Query.MoveNext%>
                  <% conn.close
                      Set Conn = Nothing %>
</table>

</body>

</html>
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