Thema: Delphi case und zähl problem

Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#6

Re: case und zähl problem

  Alt 10. Mai 2009, 17:56
Hier eine weitere Möglichkeit (obwohl wir so etwas schon einmal in der DP hatten, da müssten auch hochoptimierte Lösungen zu finden sein):
Delphi-Quellcode:
type TCharArray = array['A'..'Z'] of integer; //für die Buchstaben A bis Z, ggf. erweitern

function CountChars(const Str: string): TCharArray;
var i: integer;
begin
  FillChar(Result,SizeOf(Result),0);
  for i := 1 to Length(Str) do
    if Upcase(Str[i]) in ['A'..'Z'] then //falls oben erweitert, auch hier anpassen
      inc(Result[Upcase(Str[i])]);
end;
Eine mögliche Auswertung könnte dann z.B. so aussehen:
Delphi-Quellcode:
procedure TMainForm.btnCountClick(Sender: TObject);
var arr: TCharArray;
    c: Char;
begin
  arr := CountChars('Emil und die Detektive');
  for c := Low(arr) to High(arr) do
    ListBox1.Items.Add(Format('%s: %d',[c,arr[c]]));
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat