ickebins1989 Geschrieben 7. Oktober 2009 Geschrieben 7. Oktober 2009 Tach Leute. Ich komm einfach nicht drauf. Hab mir schon tausende Themen durchgelesen. Das Ereignis findet statt, wenn ich einen Button klicke. Hier erstmal der Code: tbLizenz.Visible = true; label2.Visible = true; string strBuchstabe = tbNr.Text; string strAusgabe = ""; if (tbNr.Text == "") { MessageBox.Show("Fehlerhafte Eingabe!", "Fehler!"); tbLizenz.Visible = false; label2.Visible = false; } else { foreach (char c in strBuchstabe) { strBuchstabe = System.Convert.ToInt32(c).ToString(); strAusgabe += strBuchstabe; } tbLizenz.Text = strAusgabe; }[/PHP] Ich hab 2 Textboxen. Einmal Textbox für die Eingabe (tbNr) und einmal Ausgabe (tbLizenz). Ich möchte jedes Zeichen, das in dem String ist, den Ascii Code herauslesen und von der eingegebenen Zahl subtrahieren. String wäre z.B. Hallo: Also tbNr.Text - (minus) Ascii-Wert H - Ascii-Wert A ... ... ... Das Ergebnis möchte ich mir gerne in der Textbox für die Ausgabe anzeigen lassen. Danke für die Hilfe. Zitieren
TDM Geschrieben 7. Oktober 2009 Geschrieben 7. Oktober 2009 Sowas? char.ConvertToUtf32("ABC", 0) //returns 65 char.ConvertToUtf32("ABC", 1) //returns 66 char.ConvertToUtf32("ABC", 2) //returns 67 Zitieren
ickebins1989 Geschrieben 7. Oktober 2009 Autor Geschrieben 7. Oktober 2009 Müsste das dann so aussehen:?! private void btnGenerieren_Click(object sender, EventArgs e) { tbLizenz.Visible = true; label2.Visible = true; string strBuchstabe = tbNr.Text; string strAusgabe = ""; if (tbNr.Text == "") { MessageBox.Show("Fehlerhafte Eingabe!", "Fehler!"); tbLizenz.Visible = false; label2.Visible = false; } else { foreach (char c in strBuchstabe) { strBuchstabe = System.Convert.ToInt32(c).ToString(); char.ConvertToUtf32(strBuchstabe, 0); char.ConvertToUtf32(strBuchstabe, 1); char.ConvertToUtf32(strBuchstabe, 2); char.ConvertToUtf32(strBuchstabe, 3); char.ConvertToUtf32(strBuchstabe, 4); char.ConvertToUtf32(strBuchstabe, 5); strAusgabe += strBuchstabe; } tbLizenz.Text = strAusgabe; } }[/PHP] Da ich Anfänger bin, versteh ich´s noch nicht so ganz, ob ich nun was falsches angegeben hab. Ab dem 3. bringt er mir, dass es außerhalb des Bereiches liegt?! Als Rückgabewert gibt er mir bei jedem Zeichen die 50 zurück. Zitieren
Hahne Geschrieben 7. Oktober 2009 Geschrieben 7. Oktober 2009 Kurze Frage zur Verständnis. Soll das eine Chiffre werden? Sieht mir ganz danach aus als wenn du deinen Klartext den du eingegeben hast durch das Umrechnen in ASCII und Subtrahieren des ASCII-Wertes von H in eine Geheimschrift wie die Caesarchiffre wandeln willst. Ist das richtig? Zitieren
ickebins1989 Geschrieben 7. Oktober 2009 Autor Geschrieben 7. Oktober 2009 @Hahne. Nein das ist nicht richtig. Ich weiß garnicht was die Begriffe bedeuten, die Du mir grad an den Kopf wirfst:D Hier ist die Lösung...War eigentlich ganz einfach: for (int i = 0; i < tbKunde.Text.Length; i++) { iKey -= tbKunde.Text[i]; } tbLizenz.Text = iKey.ToString();[/PHP] Danke für Eure Hilfe Zitieren
lbm1305 Geschrieben 8. Oktober 2009 Geschrieben 8. Oktober 2009 Kurze Frage zur Verständnis. Soll das eine Chiffre werden? Sieht mir ganz danach aus als wenn du deinen Klartext den du eingegeben hast durch das Umrechnen in ASCII und Subtrahieren des ASCII-Wertes von H in eine Geheimschrift wie die Caesarchiffre wandeln willst. Ist das richtig? Wenn ich von der Benamung der zweiten Textbox ausgehe, dann soll das von ein "Lizenzgenerator" werden. Für nen Anfänger sollten aber erstmal andere, grundlegende, Dinge wichtiger sein. Zitieren
ickebins1989 Geschrieben 8. Oktober 2009 Autor Geschrieben 8. Oktober 2009 Das hast Du schon gut erkannt. Klar, sind grundlegende Dinge besser, für einen Anfänger, aber ich denke, dass auch für Anfänger solche "Versuche" von großem Wert sind, um den Kenntnisstand zu erweitern. Zitieren
Hahne Geschrieben 8. Oktober 2009 Geschrieben 8. Oktober 2009 Aso gut das habe ich übersehen. Kam mir halt mit dem Umrechnen in ASCII so bekannt vor. Hatte das mal früher ähnlich gemacht als ich eine Caesarchiffre programmiert hatte. Zitieren
lbm1305 Geschrieben 8. Oktober 2009 Geschrieben 8. Oktober 2009 (bearbeitet) Das hast Du schon gut erkannt. Diese Variante einer Lizenzerstellung würde ich aber so nicht nutzen, da man, wenn es wirklich nur dieser Algorithmus ist, dies sehr leicht umgehen. Bearbeitet 8. Oktober 2009 von lbm1305 Zitieren
ickebins1989 Geschrieben 8. Oktober 2009 Autor Geschrieben 8. Oktober 2009 Soll auch in dem Zusammenhang nur eine kleine Übung für mich sein, da ich erst angefangen habe, zu programmieren und Du siehst, ich hab eine Weile dafür gebraucht, dies zu lösen. Zitieren
TDM Geschrieben 8. Oktober 2009 Geschrieben 8. Oktober 2009 Ich hätte eher sowas gedacht: for (int i = 0; i < tbKunde.Text.Length; i++) [INDENT]tbLizenz.Text += char.ConvertToUtf32(tbKunde.Text, i).ToString();[/INDENT] Zitieren
lbm1305 Geschrieben 8. Oktober 2009 Geschrieben 8. Oktober 2009 Ich hätte eher sowas gedacht: for (int i = 0; i < tbKunde.Text.Length; i++) [INDENT]tbLizenz.Text += char.ConvertToUtf32(tbKunde.Text, i).ToString();[/INDENT] Anderer Vorschlag (in einem Beispiel einer Console-Anwendung): string txtEingabe = "Hallo Welt"; foreach (var item in txtEingabe) { Console.Write((int)item); } Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.