dann will ich auchmal vorschlagen...
Delphi-Quellcode:
S:=Edit1.Text;
for i:=1 to Length(S) do
if S[i]='A' then S[i]:='Z'
else if S[i]='a' then S[i]:='z'
else S[i]:=Chr(Ord(S[i])-1);
ohne Umlaute leider...
Edit:
Achso, muss es überhaupt Case-Sensitiv sein?
wenn nicht:
Delphi-Quellcode:
S:=LowerCase(Edit1.Text);
for i:=1 to Length(S) do
if S[i]='a' then S[i]:='z'
else S[i]:=Chr(Ord(S[i])-1);
Und Noch ein Edit...Nicht hoch sondern runter Shiften!!!
Und noch eine Version mit Umlauten...
Delphi-Quellcode:
const
Chars: String = ('ab...yzäöü');
begin
//Nicht Case-Sensitiv
for i:=1 to Length(S) do
Case Pos(S[i],Chars) of
1..27: S[i]:=Chars[Pos(S[i],Chars)+1];
28: S[i]:=Chars[1];
end;
//Case-Sensitiv mit allen möglichen Zeichen
function GetChar(ID: Integer; Lower: Boolean):Char;
begin
if Lower then
Result:=LowerCase(Chars[ID])[1]
else
Result:=UpperCase(Chars[ID])[1];
end;
function PosInChars(Val: Char):Integer;
begin
Result:=Pos(LowerCase(Val),LowerCase(Chars));
end;
begin
for i:=1 to Length(S) do
begin
L:=LowerCase(S[i])=S[i];
Case PosInChars(S[i]) of
1..27: S[i]:=GetChar(PosInChars(S[i])+1,L);
28: GetChar(1,L)
end;
end;
end;