Einzelnen Beitrag anzeigen

Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.062 Beiträge
 
Delphi XE2 Professional
 
#3

AW: Zerteilen eines String in einzelne Zeichen

  Alt 25. Jun 2021, 01:23
So zum Beispiel
Delphi-Quellcode:
type
  TCount=packed record
     Character:Char;
     Count:Integer;
   end;
  TCounts=Array of TCount;
Delphi-Quellcode:
PROCEDURE CountChars(const S:String; var Counts:TCounts);
var I,N:Integer; C:Char; CharCounts:Array[Char] of Integer;
begin
   Counts:=Nil;
   if S<>'then begin
      FillChar(CharCounts,SizeOf(CharCounts),0);
      // Anzahl je Zeichen ermitteln
      for I:=1 to Length(S) do Inc(CharCounts[S[I]]);
      // Anzahl verschiedener Zeichen ermitteln
      N:=0;
      for C:=Low(C) to High(C) do
         if CharCounts[C]>0 then Inc(N);
      // Zeichen und Anzahl je Zeichen in Counts stellen
      SetLength(Counts,N);
      I:=0;
      for C:=Low(C) to High(C) do
         if CharCounts[C]>0 then begin
            Counts[I].Character:=C;
            Counts[I].Count:=CharCounts[C];
            Inc(I);
         end;
   end;
end;
Delphi-Quellcode:
PROCEDURE TMain.Test;
const TestString='Delphi-Praxis';
var I:Integer; Counts:TCounts; S:String;
begin
   CountChars(TestString,Counts);
   for I:=0 to High(Counts) do
     S:=S+Counts[I].Character+' = '+IntToStr(Counts[I].Count)+#13;
   ShowMessage(S);
end;
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat