Thema: Delphi Buchstaben weiterzählen

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#15

Re: Buchstaben weiterzählen

  Alt 15. Sep 2004, 19:43
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] < 'zthen text[i] := Chr(Ord(text[i])+1) else text[i] := 'a';
  end else if text[i] in ['A'..'Z'] begin
    if text[i] < 'Zthen 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) <= 'zthen 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) <= 'Zthen 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)) <= 'zthen 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 > Hier im Forum suchenStringReplace ... 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
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat