Beim Buchstabenzählen ist jedoch noch eines zu bedenken:
in der deutschen Sprache gibt es ja außer den 26 Buchstaben von a bis z noch die Buchstaben ß, ä, ö, ü, also, berücksichtigt man nur eine Schreibweise, 30 Buchstaben. Das Problem ist zudem noch, dass Uppercase ä nicht in Ä etc. verwandelt. Dazu wäre dann eine Prozedur wie folgt nötig:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| function Ucase(s : string) : string; var temp : string; c : char; i : integer; begin temp := s; for i := 1 to length(s) do begin c := s[i]; case c of 'a'..'z', 'ä', 'ö', 'ü' : c := char(ord(c)-32); 'ß' : ; end; s[i] := c; end; result := s; end; |
Außerdem müssten dann die Zeilen 27 - 30 eingefügt werden und die Angabe des Zeichencodes wie folgt geändert werden:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| function DeZeichenNr(c : char) : integer; var n : integer; begin case c of 'a'..'z' : n := ord(c)-96; 'A'..'Z' : n := ord(c)-64; 'ä', 'Ä' : n := 27; 'ö', 'Ö' : n := 28; 'ü', 'Ü' : n := 29; 'ß' : n := 30; else n := 0; end; result := n; end; |
Dann kann der gesamte deutsche Zeichensatz durchsucht werden. Bei im Zeichensatz als Buchstaben nicht vorhandenen Zeichen wird dann 0 zurückgegeben. Also bei allen Leerzeichen, Kommatas, Punkte, Semikoli, Doppelpunkten etc. und anderen Sonderzeichen sowie den Ziffern.
Vielleicht könnt Ihr das gebrauchen. Wenn nicht, egal.