Avatar billede doggy82 Praktikant
22. april 2005 - 19:22 Der er 11 kommentarer og
1 løsning

Fire tilfældige billeder fra en mappe?

Hejsa

Jeg sidder og leder efter et script som kan vise fire tilfældige billeder fra en mappe.
Det svære er at billederne hedder alt muligt forskelligt.

Er det muligt at søge en mappe igennem for jpg-filer. Og så vise fire tilfældige af dem?
Jeg havde engang et script som viste indholdet af en mappe - så det må da kunne lade sig gøre.

Det eneste jeg kan finde nu er et script som kræver at man kender navnene på billederne.

Nogle der har et hint eller to om hvordan det kan laves?
JS er at foretrække.

Tak -Lasse
Avatar billede busschou Praktikant
22. april 2005 - 19:35 #1
Her kan du se hvordan man kan finde filer i en mappe
Det vil du forholdvis nemt kunne modificere så det gemmer navnene i fx et array
Du vil så kunne vælge imellem dem
http://www.html.dk/dokumentation/vbscript/HTML/vsprofiles.htm
Avatar billede busschou Praktikant
22. april 2005 - 19:36 #2
Her kan du se hvordan du finder typen på filen
http://www.html.dk/dokumentation/vbscript/HTML/vsprotype.htm
Avatar billede busschou Praktikant
22. april 2005 - 19:40 #3
Så det er blot at oprette et fso object. Løbe mappen igennem for filer. Hver gang en fil er af typen jpg så sættes den i listen. :o)
Avatar billede doggy82 Praktikant
22. april 2005 - 19:57 #4
Arg det er jo i VB, det er jeg ikke lige så stærk i - Og jeg har JS på samme side, som så skal omskrives hvis det skal laves i VB...  :(
Avatar billede busschou Praktikant
22. april 2005 - 20:01 #5
ok jeg kender intet til jscript desværre
Jeg ved ikke hvordan det fungerer om man kan bruge begge dele på en side...desværre så
Avatar billede busschou Praktikant
22. april 2005 - 20:11 #6
Så vidt jeg kan se herinde
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/wsconcopyingfilesfolders.asp
Så er det kun måden hvorpå man opretter et FSO object på som er forskellig i VBscript og Jscript ... så prøv evt at lure de små forskelle :o)
Avatar billede busschou Praktikant
22. april 2005 - 20:14 #7
Her er der en masse eksempler og her finder du mere indformation om FSO
Jeg tror ikke jeg kan give dig meget bedre eksempler
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/sgFSOSample.asp
Avatar billede doggy82 Praktikant
22. april 2005 - 20:16 #8
Ok. Tak fordi du gider hjælpe - jeg ser lige lidt på sagerne og vender så tilbage. Du kan jo smide et svar i mellemtiden :)
Avatar billede busschou Praktikant
22. april 2005 - 20:19 #9
Det vil jeg da gerne gøre :o) ... men du må jo sige hvad du finder frem til
Jeg tror egentlig ikke forskellene er så store imellem Jscript og VBScript...og de står begge beskrevet hos microsoft..
Avatar billede doggy82 Praktikant
22. april 2005 - 20:31 #10
Arg hvor er det irriterende - kan ikke finde en dyt på nettet.
Og det er lang tid siden jeg har kodet. Kan ikke huske så meget...

Jeg forestiller mig at det skal laves så'n:

> Liste over alle jpg-filerne i en specifik mappe bliver smidt ind i et array.
> En random funktion vælger fire _forskellige_ filnavne fra array'et.
> Fire linjer bliver skrevet til siden: <img src"fil.jpg" alt="rnd pic">

Er der ikke nogen som lige hurtigt kan bikse det sammen?
Hvis det bliver i VBscript må jeg leve med det.
Avatar billede doggy82 Praktikant
23. april 2005 - 00:16 #11
Hmm fandt noget.
Der skal bare lige ændres to ting:

> Skal vise JPG istedet for txt
> Skal vise fire forskellige billeder

Anyone?
Ellers opretter jeg et nyt spørgmål.
Eller jeg finder ud af at løse det selv...

<%
Function ReadDir(FolderName)
    On Error Resume Next
    Dim objFSO
    Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
       
    'Make sure the specified folder exists
    If Not objFSO.FolderExists(FolderName) Then
        ReadDir = "Folder does not exist. <br>"
        Exit Function
    End If

    Dim objFolder
    Set objFolder = objFSO.GetFolder(FolderName)

    Dim I : I = -1
    ReDim arrFile(20)
    Dim objFile
    For Each objFile In objFolder.Files
        If Right(objFile, 4) = ".txt" Then
              I = I + 1
           
            if I > UBound(arrFile) then ReDim Preserve arrFile(I + 20)
                       
            arrFile(I) = objFile.Path
        End If
    Next
   
    'Make sure arrFile is the right size
    Redim Preserve arrFile(I)

    If I = -1 Then
        ReadDir = "No text files in this directory. <br>"
       
    End If

    Randomize
    Dim RanFile : RanFile = Int((UBound(arrFile) - 1 + 1) * Rnd + 1)
    Dim strOutput : strOutput = ""
    Dim strFileName : strFileName = arrFile(RanFile)
    If objFSO.FileExists(strFileName) Then
        Dim objTextStream
        Set objTextStream = objFSO.OpenTextFile(strFileName, 1)
            Do While Not objTextStream.AtEndOfStream
                strOutput = strOutput & objTextStream.ReadLine
            Loop
        objTextStream.Close
    Else
        ReadDir = "File does not exist. <br>"
        ReadDir =  strFileName
        Exit Function
    End If

   
    ReadDir = strOutput

Set objTextStream = Nothing
Set objFolder = Nothing
Set objFile = Nothing
Set objFSO = Nothing
End Function
%>


<%
  Response.Write(ReadDir(Server.MapPath("thumbnails")))
%>
Avatar billede doggy82 Praktikant
23. april 2005 - 00:41 #12
Nå, men jeg må hellere oprette et nyt spm - men du fik mig da i det mindste på rette vej. Points til dig.
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