Hallo Abtrünniger,
ich glaube nicht, dass dein Ansatz funktioniert. Wenn du nur große Buchstaben berücksichtigst, hast du 24 Fälle, wenn du vorher die Umlaute und ß auf AE, ..., SS umsetzt. Also brauchst du mindestens eine Basis 24 für deine p-adische Darstellung des Wortes. Ich habe dir dies für die Basis 24 einmal hingeschrieben. Für lange Wörter wird das Makro versagen, weil der Datentyp Decimal nur Zahlen bis 7,9 * 10^28 darstellt, also höchstens 20, in Fällen niedriger Anfangsbuchstaben 21 Buchstaben.
Ich bin gespannt, ob es das ist, was du brauchst.
'Codierung
wort = "Wort"
Do Until wort = ""
wort = InputBox("Wort")
If wort = "" len(wort)> 20 or Then Exit Sub
wort = UCase(wort)
wort = Replace(wort, "Ä", "AE")
wort = Replace(wort, "Ö", "OE")
wort = Replace(wort, "Ü", "UE")
wort = Replace(wort, "ß", "SS")
Dim a As Variant
a = 0
a = CDec(a)
b = CDec(a)
For i = 0 To Len(wort) - 1
a = a + (Asc(Mid(UCase(wort), i + 1, 1)) - 64) * 24 ^ i
Next i
MsgBox a
'Decodierung
b = Log(a) / Log(24)
c = ""
For i = Int(b) To 0 Step -1
b = 24 ^ i
d = a / b
a = a - Int(d) * b
c = Chr(Int(d) + 64) + c
Next
MsgBox c
Loop
Gruß
Holger
Abtrünniger schrieb am 10.10.2009 10:25:46:
Holger schrieb am 10.10.2009 09:23:31:
Hallo Abtrünniger,
zeige bitte einige Beispiele. So gibt es zu viele Möglichkeiten. Bleibt die Reihenfolge der Buchstaben des hineingemischten Worts erhalten? Wiederholt sich die Buchstabenkombination bei den Namen oder ist sie eindeutig? So richtig verstehe nicht, welchen Kryptierungsalgorithmus anwendest. Erst dann kann über Entschlüsselung nachgedacht werden.
Gruß
Holger
Hi!
Momentan arbeite ich mich mit Zuweisungen von 2er-Potenzen durch (A=1, B=2, C=4, D=8 etc...)...
Das beigemischte Wort bekomme ich so - anhand der Summe - auch jetzt schon rausgeschnitten... Momentan klappt es auch so halb - dauert mir aber noch viel zu lange! Die Reihenfolge ist immer unterschiedlich (Hallo kann also "ollaH", "olhal", "llaho" etc heißen!) - deswegen arbeite ich mom mit Binären Zuweisungen...
Was mich momentan noch interessiert, ist, wie ich aus einem Feld ein Wort (z.b. Affe) direkt in eine Zahl umwandeln kann (also 1+32+32+16=81)... Den Rest habe ich jetzt schon mehr oder weniger auf die Reihe bekommen!
Dank dir für deine Antwort!
MfG - Abtrünniger |