Buchstabenproblem
-
Ich würde gerne ein Programm schreiben, mit RichEdit1, RichEdit2 und Button1.
Wenn ich auf den Button1 drücke, soll alles von RichEdit1 in RichEdit2 kopiert werden (Das habe ich auch schon geschafft).
Jetzt das Problem: Ich würde gerne, verschiedene Buchstaben vertauschen. Irgendwie muss ich dem Programm beibringen, dass es die Buchstaben vertauscht, aber ich weiss nicht wie.Beispiel:
für "A" soll das Programm "Z",
für "B" dann "C" hinsetzen (in RichEdit2).Aus "AB" wird dann "ZC".
Weiss jemand wie man das macht?

Bitte keine verweise angeben, sondern Quellcode.PS: Ich verwende BCB 1.0
-
Hallo,
Du willst also ne cäsar chiffre bauen.
Du könntest ein Alphabet in nem Array, std::vector oder was auch immer definieren. Und dann nach dem aktuellen Buchstaben suchen, den Offset addieren und erhälst den chiffrierten Buchstaben. Musst nur drauf achten das Alphabet als Ring zu behandeln.
-
An sonsten ist
RichEdit1->Text=StringReplace(RichEdit2->Text,"A","Z", TReplaceFlags() <<rfReplaceAll);dein Freund.
PS: Gibts im BCB1 eigendlich keine Hilfe??

-
-=]xXx[=- schrieb:
PS: Gibts im BCB1 eigendlich keine Hilfe??

doch, sicher... aber vielleicht ist es einfach ein Hilfeverständnis problem... (o;
-
xXx,
-=]xXx[=- schrieb:
An sonsten ist
RichEdit1->Text=StringReplace(RichEdit2->Text,"A","Z", TReplaceFlags() <<rfReplaceAll);dein Freund.
für dieses spezielle Problem nicht unbedingt:
A ~ Z
B ~ C
C ~ A==> ABC --> ZBC --> ZCC --> ZAA != ZCA
-
also ich würde es manuell machen.
sprich das ganze zeichenweise durchlaufen und dann per switch case abfragen.
in etwa so
AnsiString text1 = rich1->Text; AnsiString text2; for(int i = 0; i < text1.Length(); i++) { char curChar = text1[i]; switch(curChar) { // buchstabe der geändert werden soll case 'a': text2 += 'b'; case ... // alles was nicht verändert werden soll default: text2 += curChar; } } rich2->Text = text2;hoffe das hilft
cu Errraddicator