In
http://www.experts-exchange.com/Programming/Programming_Languages/Delphi/Q_21164802.html I posted this routine:
type
TSkipChars = set of char;
function StripChars( const Value: string; SkipChars: TSkipChars ): string;
var
I, J: Integer;
Max: Integer;
begin
Result := Value;
Max := Length( Value ); // Avoids recalculating the length.
I := 1;
while ( I <= Max ) and not ( Result[ I ] in SkipChars ) do
Inc( I );
if ( I <= Max ) then begin
J := I + 1;
while ( J <= Max ) do begin
if not ( Result[ J ] in SkipChars ) then begin
Result[ I ] := Result[ J ];
Inc( I );
end;
Inc( J );
end;
end;
SetLength( Result, I - 1 );
end;
Then someone posted a different version that's slightly faster than mine. However, the challenge is as follows:
Create a function with the same parameters as the one above that is at least twice as fast as my solution above. Use any means possible. :-)
Yeah, Impossible? Maybe. But it's a honorable challenge for the real speed-maniacs here. (Probably ends up becoming something in assembler...)
Now, once we have a lightning-fast solution, let no one ever ask how to strip characters from a string from this point on!