Jag har problem med en slumpfunktion som jag har gjort.
Den skapar ett unikt filnamn, eller egentligen skapar den bara en sträng med 8 tecken mellan a och z...
Hur som helst är den usel och fantasilös. Jag har genererat typ 400 filer med den funktionen och sett att det finns massor av exempel där det finns block med kanske 20 filer som alla börjar med samma sträng... typ "jjwll"... På en del av dem skiljer det kanske bara en bokstav.
Hur stor chans är det om det hade varit rent statistiskt?
Efter som jag slumpar mellan 25 tecken och dessa får återkomma i slumpningen har vi 25^8 olika kombinationer. Det bli ju 152 587 890 625!!! Jag vet att datorer är dåliga på att slumpa, men det här är för mig mycket märkligt...
Min funktion:
Function GetRandomFileName(strFileExt)
Dim fso, strFileName2, intRndNumber
Set fso = CreateObject("Scripting.FileSystemObject")
For i = 0 to 7
Randomize
intRndNumber = rnd *26
If cInt(intRndNumber) >= 0 AND cInt(intRndNumber) < 26 Then
strFileName2 = strFileName2 & chr(97 + cint(intRndNumber))
End If
Next
strFileName2 = strFileName2 & "." & strFileExt
If fso.FileExists(server.mappath("/") & "\images\uploadProd\" & strFileName2) Then
GetRandomFileName = GetRandomFileName(strFileExt)
Else
GetRandomFileName = strFileName2
End If
End Function
Den är ju som ni ser rekursiv och släpper inte ifrån sig ett namn som redan finns...
Så.. Den funkar ju.. Men jag blir bara så fundersam på om det finns någon som har en riktigt bra slumpfunktion?
Tackar..
// MikeEast
------------------
Alltså.. Det är vad jag tycker..
Borde vara hyfsat säkert. Rent teoretiskt kan funktionen loopa väldigt länge beroende på slumpen. Möjligheten är ju att filnamnet finns, och denna möjlighet ökar med antalet filer.
Vad ska du ha alla olika filnamn till? för man kan lösa det på andra sätt, exempelvis döpa filen efter år-månad-dag-timme-sekund, dvs den aktuella tiden när filen skall skapas. Då behövs ingen slump, man behöver inte heller kolla tidigare filnamn (för säkerhets skull kanske man ska kolla tidigare filnamn, för allt beror ju på serverns klocka...)
Ett annat sätt är att hålla en indexering lagrad, helt enkelt ett nummer som ökas för varje fil. Indexeringan kan man ha i en textfil, eller en applikationsvariabel eller ett serverobjekt eller liknande.
/T
------------------
Jensen Ambassadör, mitt bästa köp! www.jensen.no
Bilderna är för en produktkatalog. I värsta fall kan dom skaka fram upp till 2000 bilder.
Jag tänkte på möjligheten att döpa dem till typ image145.jpg och så(alltså id:t)
Jag kom dock på att det inte var så bra, för eftersom en bildbank av detta slaget kommer att vara värd en del för konkurrenter så vill jag inte göra det så lätt att tanka ner dem...
Jag snodde nämligen bilder på det viset själv från ett ställe där alla bilder hette något i sifferföljd..
Men det är inte därför jag frågar egentligen..
Jag var bara intresserad av att veta mer om slumpen. Det måste ju finnas nån som har gjort en killer-slump liksom..
Som kanske kan vara lite mer varierad än min..
------------------
Alltså.. Det är vad jag tycker..
Om du ändå spara bilden eller bildens namn i databasen, så är det enklast att döpa dom efter artikelnummer eller id nummer.
Jag tycker inte det spelar någon roll om någon kan "sno" bilderna, för dom är ju ändå åtkomliga, dvs. om en besökare väljer att titta på alla produkter så finns ju alla bilder redan i cashen. Sätt då en copyrighttext i ett hörne istället.
/T
------------------
Jensen Ambassadör, mitt bästa köp! www.jensen.no
okej inget med dit inlägg utan ville bara säga att han har ju copyright på den utan att sätta upp någon text på sidan! allt material som är gjorda av svenskar är copyright skyddade och behöver ingen text eller (c).
(ni kanske redan vet detta men kände bara för att säga det ifall någon inte viste ;) )
260 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25