28. marts 2004 - 14:56Der er
21 kommentarer og 1 løsning
Omskriv function til at hente filnavne
function buildSelect(foldspec) Dim fso,bsFold,StrFoldere,Folder,dc,d
Set fso=Server.CreateObject("Scripting.FileSystemObject") Set dc = fso.Drives
' Gennemløb array med en løkkedrevbogstav For Each d in dc Set d = fso.GetDrive(d.driveletter+":") If d.DriveType=2 then If fso.FolderExists(d.driveletter+":"+foldspec) = true Then Set bsFold=fso.GetFolder(d.driveletter+":"+foldspec) end if next
strFoldere="" for each folder in bsFold.SubFolders strFoldere=Strfoldere & "<OPTION VALUE='" & folder.Name & "'" StrFoldere=StrFoldere & ">" & folder.Name & "</OPTION>" & vbcrlf next BuildSelect=strFoldere
set fso=nothing set dc=nothing set bsfold=nothing end function
Jeg ovenstående til at hente folder navne - skal omskrives til at hente filnavne istedet uden ext. Skal bruges til select box
function buildSelect(foldspec) Dim fso,bsFold,StrFile,Folder,dc,d,efternavn,filnavn
Set fso=Server.CreateObject("Scripting.FileSystemObject") Set dc = fso.Drives
' Gennemløb array med en løkkedrevbogstav For Each d in dc Set d = fso.GetDrive(d.driveletter+":") If d.DriveType=2 then If fso.FolderExists(d.driveletter+":"+foldspec) = true Then Set bsFold=fso.GetFolder(d.driveletter+":"+foldspec) end if next
strFile="" for each file in bsFold.Files efternavn=fso.GetExtensionName(file.Name) if efternavn<>"" then efternavn="."&efternavn response.write efternavn filnavn = replace(file.Name, efternavn,"") strFile=StrFile & "<OPTION VALUE='" & filnavn & "'" strFile=StrFile & ">" & filnavn & "</OPTION>" & vbcrlf next BuildSelect=strFile
set fso=nothing set dc=nothing set bsfold=nothing end function
function buildSelect(foldspec) Dim fso,bsFold,StrFile,Folder,dc,d,efternavn,filnavn
Set fso=Server.CreateObject("Scripting.FileSystemObject") Set dc = fso.Drives
' Gennemløb array med en løkkedrevbogstav For Each d in dc Set d = fso.GetDrive(d.driveletter+":") If d.DriveType=2 then If fso.FolderExists(d.driveletter+":"+foldspec) = true Then Set bsFold=fso.GetFolder(d.driveletter+":"+foldspec) end if next
strFile="" for each file in bsFold.Files efternavn=fso.GetExtensionName(file.Name) if efternavn<>"" then efternavn="."&efternavn filnavn = replace(file.Name, efternavn,"") strFile=StrFile & "<OPTION VALUE='" & filnavn & "'" strFile=StrFile & ">" & filnavn & "</OPTION>" & vbcrlf next BuildSelect=strFile
set fso=nothing set dc=nothing set bsfold=nothing end function
function buildSelect(foldspec) Dim fso,bsFold,StrFoldere,Folder,dc,d
Set fso=Server.CreateObject("Scripting.FileSystemObject") Set dc = fso.Drives
' Gennemløb array med en løkkedrevbogstav For Each d in dc Set d = fso.GetDrive(d.driveletter+":") If d.DriveType=2 then If fso.FolderExists(d.driveletter+":"+foldspec) = true Then Set bsFold=fso.GetFolder(d.driveletter+":"+foldspec) end if next
strFoldere="" for each folder in bsFold.SubFolders strFoldere=Strfoldere & "<OPTION VALUE='" & folder.Name & "'" StrFoldere=StrFoldere & ">" & folder.Name & "</OPTION>" & vbcrlf next BuildSelect=strFoldere
set fso=nothing set dc=nothing set bsfold=nothing end function
Den her kører som den skal og viser folderne - men jeg oplever at de fejl der sker inde sub functionen melder browseren ikke fejl til mig den stopper bare- den melder feks ikke fejl hvis der mangler at bliver Dim en variabel ?
ok, og folderen findes naturligvis sådan den kan finde den i dette loop? For Each d in dc Set d = fso.GetDrive(d.driveletter+":") If d.DriveType=2 then If fso.FolderExists(d.driveletter+":"+foldspec) = true Then Set bsFold=fso.GetFolder(d.driveletter+":"+foldspec) end if next
function buildSelect(foldspec) Dim fso,bsFold,dc,d,strfile,file,efternavn,filnavn
Set fso=Server.CreateObject("Scripting.FileSystemObject") Set dc = fso.Drives
' Gennemløb array med en løkkedrevbogstav For Each d in dc Set d = fso.GetDrive(d.driveletter+":") If d.DriveType=2 then If fso.FolderExists(d.driveletter+":"+foldspec) = true Then Set bsFold=fso.GetFolder(d.driveletter+":"+foldspec) end if next
strFile="" for each file in bsFold.Files efternavn=fso.GetExtensionName(file.Name) if efternavn<>"" then efternavn="."&efternavn filnavn = replace(file.Name, efternavn,"") strFile=StrFile & "<OPTION VALUE='" & filnavn & "'" strFile=StrFile & ">" & filnavn & "</OPTION>" & vbcrlf next BuildSelect=strFile
set fso=nothing set dc=nothing set bsfold=nothing end function
Den her virker - der manglede at blive DIM nogle af de variabler i Sub functionen Hvorfor melder browseren ikke fejl på manglende DIM i sub functioner ?
Ja helt enig den skulle melde fejl, hvis man mangler at dim en variable. Men jeg kan ikke svare på hvorfor den ikke melder fejl. Tilsyneladne sker der en fejl, da koden stopper så noget betyder Option Explicit for funktionen.
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.