Wenn man diese Replace-Funktion etwas intelligenter macht
Delphi-Quellcode:
function DoReplaceStr( const AStr: string; out ReplacedStr : string ) : Boolean;
begin
if not Lookup.TryGetValue( AStr, ReplacedStr )
then
if Enumerable<string>( Lookup.Keys ).Any(
function( const key: string ) : Boolean
begin
Result := key.StartsWith( AStr );
end )
then
Exit( False )
else
ReplacedStr := AStr;
Result := True;
end;
TReplaceCallback = reference to function( const AStr: string; out ReplacedStr: string ) : Boolean;
function ReplaceStr( const AStr : string; ReplaceCallback : TReplaceCallback ) : string;
var
c: Char;
Buffer, Replaced : string;
begin
Result := '';
Buffer := '';
for c in AStr do
begin
Buffer := Buffer + c;
if ReplaceCallback( ABuffer, Replaced ) then
begin
Result := Result + Replaced;
Buffer := '';
end;
end;
Result := Result + Buffer;
end;
könnte man sich damit auch eine generelle Umwandlung bauen, die auch von
ae wieder zurück nach
ä leisten kann.
Ich weiß, geht weit über das Ziel hinaus ... aber ich will ja auch nicht seine Hausaufgaben machen
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)