Autor Beitrag
Hennar Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: So 19.09.10 16:22 
Vielen vielen Dank :D
Tranx
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 648
Erhaltene Danke: 85

WIN 2000, WIN XP
D5 Prof
BeitragVerfasst: So 19.09.10 16:52 
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:

ausblenden 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{case}
    s[i] := c;
  end{for}
  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:

ausblenden 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{case}
  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.
Hennar Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: So 19.09.10 20:57 
Sonderzeichen brauchen wir nicht, es ging erstmal nur um die normalen Buchstaben.
Aber vielen Dank, ich kann es natürlich als Verbesserung einfügen :D
Marc.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1876
Erhaltene Danke: 129

Win 8.1, Xubuntu 15.10

BeitragVerfasst: So 19.09.10 21:05 
user profile iconTranx hat folgendes geschrieben Zum zitierten Posting springen:
Das Problem ist zudem noch, dass Uppercase ä nicht in Ä etc. verwandelt.

Probier's mal mit AnsiUpperCase('ä'); :think: :idea:

Ein Auszug aus der [url=docwiki.embarcadero....UpperCase]DOH[/url]:
Zitat:
UpperCase returns a copy of the string S, with the same text but with all 7-bit ASCII characters between 'a' and 'z' converted to uppercase. To convert 8-bit international characters, use AnsiUpperCase instead.


Grüße