Registriert seit: 17. Nov 2005
Ort: Hamburg
1.062 Beiträge
Delphi XE2 Professional
|
AW: Zerteilen eines String in einzelne Zeichen
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....
|