Nuläge: Nu får jag Hej igen. ;o) Tack Andreas - har faktiskt just testat en liknande idé och det funkar kanon! Recordset - FSO - eller?
En mapp på en webb med ett antal filer (.pdf).
Ett formulär med ett fält för att ange vilken fil som ska visas.
Eftersom jag inte fick response.redirect att fungera (se tidigare inlägg) så valde jag att göra en länk av inmatningen som besökaren får klicka på. Fungerar bra.
Önskemål:
Hur kunna visa en lista med länkar där början av namnet är det som skrivits i textrutan i formuläret?
Alltså motsvarande "SELECT * WHERE filnamn LIKE " & txtFält & "'" eller nåt liknande...Sv: LIKE...
Error Type:
Microsoft VBScript runtime (0x800A0023)
Sub or Function not defined
när jag kör denna kod
<code>
<%
Const strPath = "./ritningar/"
if request.querystring("link") ="visa" then
r1 = left(Request.Form("txtRitningsnr1"),4) & ","
r2 = left(Request.Form("txtRitningsnr2"),4)
r3 = left(Request.Form("txtRitningsnr3"),2)
RitningsNr = r1 & r2 & r3
end if
Set fso = CreateObject("Scripting.FileSystemObject")
If (fso.FolderExists(server.mappath(strPath))) Then
Set f = fso.GetFolder(server.mappath(strPath))
Set fc = f.Files
Response.Write "<div align='center'><table border='0' width='40%' cellspacing='0' cellpadding='0'>"
For Each f1 in fc
if f1.name like ritningsnr & "%" then <--- felmeddelande!
Response.Write "<tr>"
Response.Write "<td align='left' width='60%'>" & "" & f1.name & "" & "</td>"
'Response.Write "<td align='right' width='20%'>" & formatnumber(f1.size,0) & "</td>"
Response.Write "<td align='right' width='20%'>" & FormatDateTime(f1.DateCreated,2) & "</td>"
Response.Write "</tr>"
end if
Next
Response.Write "</table></div>"
end if
%>
</code>
Hur ska jag skriva för att gör en jämförelse med vildtecken? Sv: LIKE...
Tror inte Like opertorn funkar i ASP utan det är RegExp som gäller.
Fast i ditt fall kan man ju lösa det med:
<code>
<%
Const strPath = "./ritningar/"
Dim FindLen
if request.querystring("link") ="visa" then
r1 = left(Request.Form("txtRitningsnr1"),4) & ","
r2 = left(Request.Form("txtRitningsnr2"),4)
r3 = left(Request.Form("txtRitningsnr3"),2)
RitningsNr = r1 & r2 & r3
FindLen = Len(RitningsNr)
end if
Set fso = CreateObject("Scripting.FileSystemObject")
If (fso.FolderExists(server.mappath(strPath))) Then
Set f = fso.GetFolder(server.mappath(strPath))
Set fc = f.Files
Response.Write "<div align='center'><table border='0' width='40%' cellspacing='0' cellpadding='0'>"
If FindLen > 0 Then
For Each f1 in fc
If Left(f1.name, FindLen) = Left(ritningsnr, FindLen) & "%" then
Response.Write "<tr>"
Response.Write "<td align='left' width='60%'>" & "" & f1.name & "" & "</td>"
'Response.Write "<td align='right' width='20%'>" & formatnumber(f1.size,0) & "</td>"
Response.Write "<td align='right' width='20%'>" & FormatDateTime(f1.DateCreated,2) & "</td>"
Response.Write "</tr>"
End if
Next
Else
For Each f1 in fc
Response.Write "<tr>"
Response.Write "<td align='left' width='60%'>" & "" & f1.name & "" & "</td>"
'Response.Write "<td align='right' width='20%'>" & formatnumber(f1.size,0) & "</td>"
Response.Write "<td align='right' width='20%'>" & FormatDateTime(f1.DateCreated,2) & "</td>"
Response.Write "</tr>"
Next
End If
Response.Write "</table></div>"
End if
%>
</code>Sv: LIKE...
Du får rosen ändå! ;-)