Avatar billede net-meister Nybegynder
16. marts 2009 - 13:25 Der er 1 kommentar og
1 løsning

Mit random string script generer det samme igen og igen.

Public Function pass(Optional intLength As Integer = 8, Optional boolIncUpper As Boolean = False, Optional boolIncSign As Boolean = False)

    Dim strPass As String
    Dim strLower As String
    Dim strUpper As String
    Dim strNumber As String
    Dim strSign As String
    Dim strChars As String
    Dim intMax As Integer
    Dim i As Integer
 
    strLower = "qwertyuiopasdfghjklzxcvbnm"
    strUpper = "QWERTYUIOPASDFGHJKLZXCVBNM"
    strNumber = "123456789"
    strSign = "-^@[;:],./!""#$%&'()=~|`{+*}<>?_"

    strChars = strLower & strNumber

    If boolIncUpper = True Then
 
        strChars = strChars & strUpper
 
    End If
 
    If boolIncSign = True Then
 
        strChars = strChars & strSign
     
    End If

    intMax = Len(strChars)
 
    For i = 1 To intLength
 
        strPass = Mid(strChars, Int((intMax - 1 + 1) * Rnd + 1), 1) & strPass
 
    Next i

    pass = strPass

End Function

Scriptet bliver ved med at danne den samme string gang efter gang. Hvad gør jeg galt?

Hvis det er helt ude og pølle, og har du et bedre script der genererer en random string og smider det i en variabel er det osse godt :)
Avatar billede net-meister Nybegynder
16. marts 2009 - 13:43 #1
Jeg har ændret lidt i koden og nu virker det. Stort set.

Der kommer små tal og bogstaver, men ikke store bogstaver.

Koden er som flg. nu

Public Function pass(Optional intLength As Integer = 8, Optional boolIncUpper As Boolean = False, Optional boolIncSign As Boolean = False)

    Dim strPass As String
    Dim strLower As String
    Dim strUpper As String
    Dim strNumber As String
    Dim strSign As String
    Dim strChars As String
    Dim intMax As Integer
    Dim i As Integer
 
    strLower = "qwertyuiopasdfghjklzxcvbnm"
    strUpper = "QWERTYUIOPASDFGHJKLZXCVBNM"
    strNumber = "123456789"
    strSign = "-^@[;:],./!""#$%&'()=~|`{+*}<>?_"

    strChars = strLower & strNumber

    If boolIncUpper = True Then
 
        strChars = strChars & strUpper
 
    End If
 
    If boolIncSign = True Then
 
        strChars = strChars & strSign
     
    End If

    intMax = Len(strChars)
 
    For i = 1 To intLength
 
        strPass = Mid(strChars, Int((intMax - Rnd + Rnd) * Rnd + 1), 1) & strPass
 
    Next i

    pass = strPass

End Function
Avatar billede net-meister Nybegynder
16. marts 2009 - 13:44 #2
Nå, det hele virker nu. Nevermind
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