Buchstaben umwandeln, aber wie ?

DocDOOM

Grünschnabel
Hi,

habe mal nur ne kleine frage...
ich will mir ein programm schreiben, was die Buchstaben umwandelt.
Z.B.: "Hallo" = "Jokke"

Sprich: das "H" wird "J", das "a" wird "o" usw. ...

Ich will 2 Textboxen haben, in der 1. gibt man "Hallo" ein und wenn man auf den Button
drückt, soll in der 2. Textbox das umgewandelte Wort erscheinen....

Danke für eure Hilfe
 
Schreib dir zB ein array mit dem ganzen alphabet. Dann nimmste noch ne zähl variabel. Gibst in textbox1 dein wort/text ein, und liest dann jeden einzelnen char aus deiner text1 und verschiebst ihn in deinem array mit deinem zähler! und schreibst den neuen char in die text2. sowas ist die erste stufe einer codierung :)

Kann dir leider nur n bsp in c#.net zeigen, aber das hilflt dirwahrscheinlich nicht :( naja ich geh jetzt! Feierabend! :-)

Mfg

ziop
 
Geht es einfach nur darum, andere Buchstaben für einen Buchstaben zu verwenden, oder müssen es ganz bestimmte sein?
Also muss H -> J sein, oder kann auch H -> K sein?

Du kannst nämlich mit den Funktionen Chr und Asc ganz einfach so etwas realisieren.
Code:
Asc("B") ' Ergibt 66
Asc("C") ' Ergibt 67
Chr(Asc("B") + 1) 'Ergibt C
Siehst du? So könntest du z.B. einfach jeden Buchstaben + 2 rechnen, oder +1, oder +5.
Musst nur beachten, dass über das Z hinaus wieder bei A angefangen werden muss und das Kleinbuchstaben andere ASCII-Werte als Großbuchstaben haben ...
Das ist eine der simpelsten Verschlüsselungsmechanismen, die du auch in ausgereifter Form hier im Forum finden kannst (Suchfunktion).


Für den Fall, dass das nicht geht, könntest du ein 2-Dimensionales Array anlegen. Dort enthalten ist dann die Zuordnung der zu ersetzenden Buchstaben.
Code:
1 | 2
------
H | J
a | o
Dort suchst du dann nach dem Buchstaben H und ersetzt ihn dann durch den entsprechende Buchstaben in der 2. Dimension (J).
Eigentlich ziemlich simpel.
 
Okay, aufgrund deiner Anfrage per PM hier ein kleines Beispiel zu der Lösung mit dem 2-Dimensionalen Array:
Code:
    Dim buchstaben(3, 1) As String
    Dim i, j As Integer
    
    'Buchstaben in Array einlesen
    buchstaben(0, 0) = "A"
    buchstaben(0, 1) = "O"
    buchstaben(1, 0) = "a"
    buchstaben(1, 1) = "o"
    buchstaben(2, 0) = "H"
    buchstaben(2, 1) = "J"
    buchstaben(3, 0) = "h"
    buchstaben(3, 1) = "j"
    
    Dim wort, wort2 As String
    wort = "AaHh"
    MsgBox wort
    
    
    For i = 1 To Len(wort)
        For j = 0 To 3
            If Mid(wort, i, 1) = buchstaben(j, 0) Then
                wort2 = wort2 & buchstaben(j, 1)
                Exit For
            End If
        Next j
    Next i
    
    MsgBox wort2
Wenn du es mit dem ganzen Alphabet machst, musst du natürlich das Array dementsprechend Dimensionieren:
26 Großbuchstaben + 26 Kleinbuchstaben = 52 Buchstaben - 1 (Array beginnt bei 0, nicht bei 1) = buchstaben(51, 1)
 
Darf ich fragen wieso du das umbedingt zuweisen willst? Sprich a=h etc? Ist doch echt umständlicher oder? Das mit dem Array, oder dem ASCII Zeichensprung geht doch viel einfacher, und das Ergebnis ist auch unleserlich für jeden, der die Sprungmarke nicht kennt. Und falls du schon fast in Codierung stufe 2 rein willst, kannst du ja(wenn du es mit dem Array machen würdest) das Alphabet im durcheinander speichern, so wird es schon fast unmöglich Herauszufinden welcher Buchstabe für welchen Buchstaben steht. einziges Problem. Deine interne Person, braucht ne Kopie des unüblichen Arrays, damit er die Zeichen auch abzählen kann.

Aber ist ja egal, aber wiso es feste zuweisung von Hand sein muss, nimmt mich wirklick Wunder.

Mfg
ziop
 
Zurück