Zitat von
fes:
Das ist schonmal super! Danke!
Aber, neues Problem:
1. äöü wird in a umgewandelt.
2. Geht mit Großbuchstaben nicht.
3. Wenn ich die Buchstaben im 2er Schritt weiterzähl dann wird jedes z in ein a umgewandelt(müsste aber ein b sein) und der Buchstabe, der über z hinausgeht, wird auch ein Sonderzeichen!(z.B. y wird zu { )
Also das Beispiel war jetzt nur für den Bereich von "a" bis "z" und mit einschrittiger Zählweise ausgelegt, aber es könnte auch noch leicht abgeändert/erweitert werden.
Wenn du mal genau angeben würdest, wie du zählen willst, dann könnte man da auch was machen.
Für mein Beispiel würde ich das dann mal so definieren: a>b, b>c ... y>z, z>a
Es ist vorallem wichtig, ob z.B. aus 'nem "C" ein "D", oder "d" werden soll
Hier werden z.B. die Groß- und Kleinbuchstaben (a-z, A-Z) in zwei schleifen durchgezählt:
Delphi-Quellcode:
for i := 1 to Lenght(text) do
if text[i] in ['a'..'z'] begin
if text[i] < 'z' then text[i] := Chr(Ord(text[i])+1) else text[i] := 'a';
end else if text[i] in ['A'..'Z'] begin
if text[i] < 'Z' then text[i] := Chr(Ord(text[i])+1) else text[i] := 'A';
end;
und wenn man in mehreren Schritten Zählen will, dann könnte das so aussehn:
Delphi-Quellcode:
for i := 1 to Lenght(text) do
if text[i] in ['a'..'z'] then begin
if Chr(Ord(text[i])+3) <= 'z' then text[i] := Chr(Ord(text[i])+3) else text[i] := Chr(Ord(text[i])-25);
end else if text[i] in ['A'..'Z'] then begin
if Chr(Ord(text[i])+3) <= 'Z' then text[i] := Chr(Ord(text[i])+3) else text[i] := Chr(Ord(text[i])-25);
end;
oder etwas kürzer:
Delphi-Quellcode:
for i := 1 to Lenght(text) do
if text[i] in ['a'..'z', 'A'..'Z'] then
if AnsiLowerCase(Chr(Ord(text[i])+3)) <= 'z' then text[i] := Chr(Ord(text[i])+3) else text[i] := Chr(Ord(text[i])-25);
Zitat von
fes:
Nur wie durchsuche ich den String nach äöü und wandle diese in ae oe ue um?
zum erstetzen von Zeichen >
StringReplace ... da sollte massig zu finden sein und die
OH wird auch nicht dazu schweigen
[add]
@glkbkk
das sollte so auch gehn, aber es geht auch einfacher