A
Vielen Dank für die Anregungen.
Das hat zwar leider nicht funktioniert, aber ich habe es inzwischen mit einer switch Anweisung und Arrays hinbekommen.
Hier der Code für die, die es interessiert:
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)
{
int i, auswahl;
bool zahlen, text, zeichen, grossklein = false;
if (this->cb_Zahlen->Checked) zahlen=true;
if (this->cb_Text->Checked) text=true;
if (this->cb_Zeichen->Checked) zeichen=true;
if (this->cb_GrossKlein->Checked) grossklein=true;
if (zahlen) auswahl = 1;
if (text) auswahl = 2;
if (zeichen) auswahl = 3;
if (grossklein) auswahl = 4;
if (zahlen && text) auswahl = 5;
if (zahlen && text && grossklein) auswahl = 6;
if (zahlen && zeichen) auswahl = 7;
if (zahlen && text && zeichen) auswahl = 8;
char kleinBuchstaben[27] = "abcdefghijklmnopqrstuvwxyz";
char ziffern[11] = "1234567890";
char sonderZeichen[31] = "!#$%&()*+,-./:;<=>?@[\]^{}~_°§";
char buchStaben[53] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
char kleinZiffern[37] = "abcdefghijklmnopqrstuvwxyz1234567890";
char kleinGrossZiffern[63] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
char zeichenZiffern[41] = "!#$%&()*+,-./:;<=>?@[\]^{}~_°§1234567890";
char kleinZeichenZiffern[67] = "abcdefghijklmnopqrstuvwxyz!#$%&()*+,-./:;<=>?@[\]^{}~_°§1234567890";
char kleinGrossZeichenZiffern[93] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!#$%&()*+,-./:;<=>?@[\]^{}~_°§1234567890";
array<int> ^passwort = gcnew array<int>(8);
Random ^pwort = gcnew Random();
tb_1->Text="";
for (i=0; i<8; i++)
{
switch (auswahl)
{
case 1 : //nur Zahlen
passwort[i] = ziffern[pwort->Next(0,9)];
tb_1->Text += Convert::ToChar(passwort[i]).ToString();
break;
case 2: //nur Kleinbuchstaben
passwort[i] = kleinBuchstaben[pwort->Next(0,25)];
tb_1->Text += Convert::ToChar(passwort[i]).ToString();
break;
case 3: //nur Zeichen
passwort[i] = sonderZeichen[pwort->Next(0,29)];
tb_1->Text += Convert::ToChar(passwort[i]).ToString();
break;
case 4: //Groß- Kleinschreibung beachten
passwort[i] = buchStaben[pwort->Next(0,51)];
tb_1->Text += Convert::ToChar(passwort[i]).ToString();
break;
case 5: //Zahlen und Kleinbuchstaben
passwort[i] = kleinZiffern[pwort->Next(0,35)];
tb_1->Text += Convert::ToChar(passwort[i]).ToString();
break;
case 6: //Zahlen und Buchstaben (Groß- Kleinschreibung beachten)
passwort[i] = kleinGrossZiffern[pwort->Next(0,61)];
tb_1->Text += Convert::ToChar(passwort[i]).ToString();
break;
case 7: //Zahlen und Zeichen
passwort[i] = zeichenZiffern[pwort->Next(0,39)];
tb_1->Text += Convert::ToChar(passwort[i]).ToString();
break;
case 8: //Kleinbuchstaben, Zahlen und Zeichen
passwort[i] = kleinZeichenZiffern[pwort->Next(0,65)];
tb_1->Text += Convert::ToChar(passwort[i]).ToString();
break;
default:
passwort[i] = kleinGrossZeichenZiffern[pwort->Next(0,91)];
tb_1->Text += Convert::ToChar(passwort[i]).ToString();
}
}
}
Jetzt habe ich aber schon wieder ein neues Problem, welches ich nicht lösen kann. Das schreibe ich aber in einem anderen thread.
Viele Bity&Bytes, Ahmadine