Erklär doch mal was du hier machen willst, ich sehe da nämlich nur einen geringen Sinn........
Delphi-Quellcode:
for i := 1 to length(Klartext) do
begin
for k:=1 to length(Schluessel) do
begin
if Klartext[i] = Schluessel[k] then
begin
if k mod 2 = 0
then Zwischentext[i] := Schluessel[k-1]
else if k < length(Schluessel)
then Zwischentext[i] := Schluessel[k+1]
end;
end;
...
Beispiel deiner Funktion:
Klartext := 'HALLOWELT';
Schluessel := 'HOLBERT';
Das (müsste) passieren:
Klartext[1] = Schluessel[1] stimmt
k ist 1, also ist k mod 2 = 1 -> else tritt ein
Zwischentext: 'IALLOWELT';
Klartext[1] = Schluessel[2] stimmt nicht
...
-> jedenfalls ist der erste Buchstabe schonmal das 'I'
Jetzt machen wir das mit deiner Methode wieder rückgängig
Delphi-Quellcode:
for i:= 1 to Length(Geheimtext) do
begin
for k:=1 to length(Schluessel) do
begin
if Geheimtext[i] = Schluessel[k] then
begin
if k mod 2 = 0
then Zwischentext[i] := Schluessel[k-1]
else if k < length(Schluessel)
then Zwischentext[i] := Schluessel[k+1]
end;
end;
...
I ist nicht gleich dem ersten Buchstaben aus dem Schlüssel, der ist ja H.
I kommt gar nicht im Schlüssel vor, also wird Geheimtext[1] = Schluessel[k] nie zutreffen und das I wird nie rückgängig gemacht
Im Prinzip musst du deine Verschlüsselungsmethode beim Entschlüsseln genau umgekehrt machen.
Das
Delphi-Quellcode:
Zeichen := Zwischentext[i];
GTwert := GetStellenwertVon(Zeichen);
KeyL := Length(Schluessel);
KTWert := (GTWert - KeyL + 2700 - getStellenWertvon(Schluessel[3])) mod 27;
//Zwischentext := Zwischentext + GetZeichenVon(GTWert);
Zeichen := GetZeichenVon(KTWert);
KLartext := Klartext + Zeichen;
muss also in geänderter Form oberhalb von
Delphi-Quellcode:
for i:= 1 to Length(Geheimtext) do
begin
for k:=1 to length(Schluessel) do
begin
if Geheimtext[i] = Schluessel[k] then
begin
if k mod 2 = 0
then Zwischentext[i] := Schluessel[k-1]
else if k < length(Schluessel)
then Zwischentext[i] := Schluessel[k+1]
end;
end;
stehen, weil es beim verschlüsseln schon in dieser Reihenfolge stand.
Wenn du nochmal genauer erklärst, was deine einzelnen Schritte machen sollen, können wir dir vielleicht weiter helfen