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!