Thema: Delphi Replace

Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#13

AW: Replace

  Alt 26. Jan 2016, 11:09
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)
  Mit Zitat antworten Zitat