Zum Inhalt springen

[C#]Umwandeln von Strings in Ascii


Empfohlene Beiträge

Geschrieben

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.

Geschrieben

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.

Geschrieben

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?

Geschrieben

@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 :)

Geschrieben
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.

Geschrieben

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.

Geschrieben

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.

Geschrieben (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 von lbm1305
Geschrieben

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]


Geschrieben
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);

      }

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...