Dann kann ich ja wieder ruhig schlafen.
Sicher? Ich hätte bei dem Test noch sichergestellt, das der 'badCharacter' auch wirklich im 'dirtyString' enthalten ist.
Könnte ja sein, das irgend ein Zeichen per 'Format' nicht übernommen wird. Dann meckert dein Code auch nicht.
Delphi-Quellcode:
procedure justReplacingThings();
const
formatStr = 'Hallo%sWelt';
var
dirtyString: String;
cleanedString: String;
badCharacter: Char;
charsTested: Integer;
begin
charsTested := 0;
for badCharacter := Low(Char) to High(Char) do begin
dirtyString := String.Format(formatStr, [badCharacter]);
if not ContainsChar(dirtyString, badCharacter) then // <-----
writeln('Format fails for #', ord(basCharacter))
else begin
cleanedString := dirtyString.Replace(badCharacter, EmptyStr);
if not (dirtyString <> cleanedString) then
WriteLn('Removing Character #', Ord(badCharacter), ' failed');
end;
Inc(charsTested);
end;
WriteLn(charsTested, ' Characters tested');
end;
Und dann 'ContainsChar' ohne
API implementieren (d.h. kein POS o.ä.).