Avatar billede net-meister Nybegynder
20. marts 2009 - 09:33 Der er 2 kommentarer og
1 løsning

Dan streng ud fra en stor streng

Følgende kode:
__________________________________________________________
  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
    Randomize
    strLower = "qwertyuiopasdfghjklzxcvbnm"
    strUpper = "QWERTYUIOPASDFGHJKLZXCVBNM"
    strNumber = "0123456789111213141516171819"


    strChars = strLower & strNumber & strUpper


    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
____________________________________________________________

Danner en fin lille 8 karakterer lang streng. Jeg vil gerne have at den tage mindst 1 fra hver "gruppe". Altså mindst 1 af hver af disse skal være med i den dannede streng:
    strLower = "qwertyuiopasdfghjklzxcvbnm"
    strUpper = "QWERTYUIOPASDFGHJKLZXCVBNM"
    strNumber = "0123456789"

Hvordan gør jeg det? 200 point og et internets til den der kan løse det.
Avatar billede tjp Mester
20. marts 2009 - 11:13 #1
Man ku jo indsætte en fra hver i strengen:

Function Pass()

  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 intLength As Integer
  Dim i As Integer
  Randomize
 
  strLower = "qwertyuiopasdfghjklzxcvbnm"
  strUpper = "QWERTYUIOPASDFGHJKLZXCVBNM"
  strNumber = "0123456789111213141516171819"
 
  strChars = strLower & strNumber & strUpper
  intMax = Len(strChars)
  intLength = 8
  For i = 1 To intLength - 3
      strPass = Mid(strChars, Int(intMax * Rnd + 1), 1) & strPass
  Next i
  strPass = InsertAt(strPass, getRandom(strLower), Int(intLength * Rnd + 1))
  strPass = InsertAt(strPass, getRandom(strUpper), Int(intLength * Rnd + 1))
  strPass = InsertAt(strPass, getRandom(strNumber), Int(intLength * Rnd + 1))
  Pass = strPass
End Function

Function getRandom(strChars)
  Randomize
  getRandom = Mid(strChars, Int(Len(strChars) * Rnd + 1), 1)
End Function

Function InsertAt(strChars, strChar, Index)
  InsertAt = Left(strChars, Index - 1) & strChar & Mid(strChars, Index)
End Function
Avatar billede net-meister Nybegynder
20. marts 2009 - 12:09 #2
Læg svar, modtag point

Det virker tak.
Avatar billede tjp Mester
20. marts 2009 - 12:24 #3
Værsgo og velbekomme!! :-)
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