Skulle man inte kunna göra en for lopp. Jo jag är inne på en for-loop och lägga in en do While i den men jag vet inte riktigt hur jag ska kunna kapsla Do While i en for loop. Själv har jag aldrig varit i närheten av C++ så jag vet inte riktigt hur du menar men utveckla väldigt gärna vad du menar. Prova det här, osäker Lägg till denna funktion.Generera ett lösenord
Ska generera ett lösenord på 6 bokstäver, blandat små och stora.
Tanken är att använda rnd-funktionen för att skapa en siffra som asciikod mellan 65 och 90 eller mellan 97 och 122 och den biten är inga problem. Däremot måste ju det göras sex gånger och där vill jag använda en array för att minimera koden. Dessutom måste jag testa siffran som slumpas så att den verkligen ligger inom något av de givna intervallen.
Tanken är något i den här stilen
Dim intIndex as integer
Dim strx(5) as string
For IntIndex = 1 to 6
Do While (strx(intIndex) > 90 And strx(intIndex)< 65) or strx(intIndex) > 122 And < strx(intIndex) < 97
strx(intIndex) = Chr(strx(intIndex))
Någon som har en bra ide om det?
Sv: Generera ett lösenord
Jag är inte så inne i VB för jag håller på mycket med C++ men den här principen borde gå.
for (i=0; i=<5; i++) then
array[i] = "den slumpade variablen"
next iSv: Generera ett lösenord
Hälsningar CamillaSv: Generera ett lösenord
For i = 0 To 5
j = 0
Do While j = 0
Kod för slump
If "Variabeln är OK" Then
j = 1
End If
Loop
array(i) = variabeln
Next i
/DanneSv: Generera ett lösenord
Function GeneratePassword(length as integer) as string
Dim p_string as string
Randomize
For i = 1 To length
Select Case Int(3 * Rnd + 1)
Case 1 '0 - 9
p_string = p_string & Chr(Int(10 * Rnd + 48))
Case 2 'A - Z
p_string = p_string & Chr(Int(26 * Rnd + 65))
Case 3 'a - z
p_string = p_string & Chr(Int(26 * Rnd + 97))
End Select
Next
GeneratePassword = p_string
End Function
Anropa sedan med:
password = GeneratePassword(6)