@TiGü Danke für die Übersetzung des Beispiels
@Uwe die VAR/Array Sachen sind schon schön in den neuen Compiler. Hab nur XE5
Delphi-Quellcode:
uses
System.SysUtils,
System.Generics.Collections;
procedure DuplicatesFromString(source:
string; duplicateFound: TProc<
string>);
var
dict: TDictionary<
String, integer>;
s:
string;
i: integer;
p: TPair<
string, integer>;
begin
dict:=TDictionary<
String, integer>.Create();
try
for s
in source.ToLower().Split(['
'])
do
begin
i:=0;
if dict.TryGetValue(s, i)
then
i:=i+1;
dict.AddOrSetValue(s, i);
end;
for p
in dict
do
if p.Value>0
then
duplicateFound(p.Key);
finally
dict.Free;
end;
end;
begin
try
Writeln('
Duplikate: ');
DuplicatesFromString('
Ohne Clean Code ist Code nicht wartbar.',
procedure(s:
string)
begin
Writeln(s);
end);
except
on E:
Exception do
Writeln(E.ClassName, '
: ', E.
Message);
end;
Readln;
end.