---
title: "Slumpa med fso"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/77109-slumpa-med-fso/page2"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Asa"
published: "2003-05-15T21:47:15.000Z"
updated: "2004-09-01T15:18:41.000Z"
replies: 25
views: 886
page: 2
pages: 2
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/77109-slumpa-med-fso"
---

# Slumpa med fso

_Sida 2 av 2._

## #21 — solbulle, 2003-05-20T17:51Z

Lösningen heter väl int va?

```
	rndNum = int(rnd * UBound(varyImage))
```

Då blir det inget fel.

Permalänk: https://www.webforum.nu/p/1057022

## #22 — Palle, 2003-05-20T18:03Z

> **Palle skrev:**
>
> rndNumber = Int(Rnd \* UBound(arr))

Permalänk: https://www.webforum.nu/p/1057027

## #23 — PatrikB, 2003-05-21T05:48Z

se där ja,

int va det ja ...... kanske man skulle börja att använda.
Själv använder man ju mest CInt().

/PatrikB

Permalänk: https://www.webforum.nu/p/1057241

## #24 — Mr.Switch, 2004-09-01T14:35Z

Jäklar, ni har ju haft ett verbalt slagsmål....

Hur som helst har jag modifierat era förslag.

```
<%
'Slumpar fram och presenterar en bild.
Set GetPictures = Server.CreateObject("ADODB.Recordset")
PictureSQL = "SELECT FILPATH "
PictureSQL = PictureSQL & "FROM SK_BILDBANK "
PictureSQL = PictureSQL & "WHERE ENTCODE = 'SKHB' "
PictureSQL = PictureSQL & "AND AKTIV = 1 "
PictureSQL = PictureSQL & "ORDER BY FILNAMN "
GetPictures.Open PictureSQL, Connect

	If GetPictures.EOF AND GetPictures.BOF then	
		Response.Write "Välkomstbild"
	Else		
		Do Until GetPictures.EOF 			
			strImage = strImage & GetPictures("FILPATH") &";"		
		GetPictures.MoveNext
		Loop		
		strImage = Left(strImage, Len(strImage) - 0)

		arrImages = Split(strImage, ";")
		
	End If

If IsArray(arrImages) Then

	randomize
	rndNumber = Int(Rnd * UBound(arrImages))
	Response.Write "<img src=""images/bildbank/"& arrImages(rndNumber) &""" border=""0"" width=""314"" height=""145"">"

	Var_ImagePath = arrImages(rndNumber)

End If

GetPictures.Close
Set GetPictures = Nothing

'Uppdaterar antalet gånger bilden är visad
SQL ="UPDATE SK_BILDBANK SET BILDVISAD = BILDVISAD + 1 WHERE FILPATH = '" & Var_ImagePath & "' "
Connect.execute(SQL),,128
%>
```

Som ni kanske ser så hämtar jag inte filnamnen via FSO utan rakt från en databas.

Funkar som en klocka.
Nåväl, nån kanske har användning för den.

// Switch

Permalänk: https://www.webforum.nu/p/1425461

## #25 — Erik Juhlin, 2004-09-01T14:52Z

Vad händer när man har ett semikolon i bildnamnet?
Varför inte köra med ett tecken som inte får finnas i filnamn? Som t.ex. \|...

Eller ännu bättre, skippa strängkonkateneringen och bygg ihop en array direkt i loopen. Mer prestandasnålt och snyggare kod.

Sen att lämna en tom plats i arrayen ser ju inte särskilt snyggt ut.

Permalänk: https://www.webforum.nu/p/1425466

## #26 — WebbisNet, 2004-09-01T15:18Z

Själv använder jag detta script på webbisen.com som jag fick hjälp med här på wF och det funkar toppen

```
<%
Dim oConn ,strSQL ,bilder ,i, j ,Count ,post ,antalBilder ,Found 
     
    Set oConn = server.CreateObject("ADODB.Connection") 
    oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source= " & server.MapPath("/din databas.mdb") & ";" 

    strSQL = "SELECT picture, username, visaBild" & vbCrLf & _ 
             "FROM tblUsers" & vbCrLf & _ 
             "WHERE not picture='nopic.jpg' and visaBild=true" 

    Set rs = oConn.Execute(strSQL) 
    If rs.EOF Then 
        Response.Write "Det finns inga bilder..." 
    Else 
        Response.Write "<table width=""95%""><tr><td align=""left"">" 
        bilder = rs.GetRows() 
        antalBilder = UBound(bilder, 2) + 1 

        Count = 6 
        If Count > antalBilder Then 
            Count = antalBilder 
        End If 
        ReDim Shown(Count) 

        Randomize 

        For i = 1 To Count 
            Do 
                Found = False 
                post = Int(Rnd * antalBilder) 

                For j = 1 To i - 1 
                    If Shown(j) = post Then 
                        Found = True 
                        Exit For 
                    End If 
                Next 
            Loop While Found 
            Shown(i) = post 

            Response.Write "<img border=""1"" height=""100"" width=""100"" src=""/images/users/" & bilder(0, post) & """ alt=""" & bilder(1, post) & """>&nbsp;" 
        Next 
        Response.Write "</td></tr></table>" 
    End If 
    rs.Close 
    Set rs = Nothing 
%>
```

Permalänk: https://www.webforum.nu/p/1425477

---

Tråden på webben: https://www.webforum.nu/amne/asp/77109-slumpa-med-fso/page2  
Föregående sida: https://www.webforum.nu/amne/asp/77109-slumpa-med-fso.md
