Entwickler-Ecke

WinForms - Caesar Chiffe per Button aufrufen


Cyberrob90 - Di 28.02.12 00:08
Titel: Caesar Chiffe per Button aufrufen
Guten Abend,

ich habe ein kleines Problem.
Vielleicht ist es sogar ein klein wenig größer ;)

Ich möchte das Caesar-Chiffre in C# implementieren.
Hierfür habe ich eine TextBox1, welche einen String bekommt.

Dann die Buttons Decode und Encode.
Desweiteren noch TextBox2, welche den Decodierten, oder (falls vorher codiert eingegeben) den encodierten Text ausgeben soll.

Codeschnipsel zum Caesar Chiffre finde ich im Internet zuhauf, jedoch keine Möglichkeit, diese so einzubinden, dass sie wirklich nur per Druck auf den Button ausgeführt werden.

Vielleicht weiß hier jemand Rat?

Ist just for fun und ich studiere Informatik im 2. Semester.
Bitte also keine Ratschläge wie: Fang erstmal mit Grundlegendem an...
Denn das problem ist momentan größtenteils die Programmiersprache, nicht das generelle Verständnis. Wüsste halt gerne, wie sich das lösen lässt.

Ich erwarte auch nicht, dass hier wer den fertigen Code hinknallt, mich würde nur interessieren, wie ich den Code im Button aufrufen kann.
Beispielsweise diesen hier:

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
class Program
 {
 /// <summary>
 /// Apply Caesar cipher with shift.
 /// </summary>
 static string Caesar(string value, int shift)
 {
 char[] buffer = value.ToCharArray();
 for (int i = 0; i < buffer.Length; i++)
 {
 // Letter.
 char letter = buffer[i];
 // Add shift to all.
 letter = (char)(letter + shift);
 // Subtract 26 on overflow.
 // Add 26 on underflow.
 if (letter > 'z')
 {
 letter = (char)(letter - 26);
 }
 else if (letter < 'a')
 {
 letter = (char)(letter + 26);
 }
 // Store.
 buffer[i] = letter;
 }
 return new string(buffer);
 }

 static void Main()
 {
 string a = "test";
 string b = Caesar(a, 18); // Ok
 string c = Caesar(b, -18); // Ok

 string d = Caesar(a, 1); // Ok
 string e = Caesar(d, -1); // Ok

 string f = "exxegoexsrgi";
 string g = Caesar(f, -4); // Ok

 Console.WriteLine(a);
 Console.WriteLine(b);
 Console.WriteLine(c);
 Console.WriteLine(d);
 Console.WriteLine(e);
 Console.WriteLine(f);
 Console.WriteLine(g);
 }

Gruß,
Cyberrob

PS: Sollte wie in diesem Video funktionieren, halt mit zweitem Textfeld.

http://www.youtube.com/watch?v=DmjOWptrUX4&feature=plcp&context=C302f7fbUDOEgsToPDskLQ3q6HKzMGJC8KUkfsNhF6

Moderiert von user profile iconNarses: C#-Tags hinzugefügt


Th69 - Mi 29.02.12 10:35

Hallo Cyberrob90 :welcome:

zuallererst mußt du ja mal ein "Windows Form"-Projekt anlegen (denn dein bisheriger Code ist ja eine normale Konsolenapplikation) und dort dann TextBoxen und Buttons platzieren. Und dann mußt du halt im Button-Click Ereignis deinen Chiffre-Code aufrufen.

Trotzalledem sind dies Grundlagen, welche du z.B. im OpenBook Visual C# [http://openbook.galileocomputing.de/visual_csharp_2010] nachlesen kannst.

(sorry, wollte dir gestern schon schreiben, wurde dann aber abgelenkt...)