{ ExcludeChars
Fonction permettant d'exclure des caracteres d'une chaine selon un "charset" donné.
Params :
S [I] string, chaine originale dont ont vas exclure les caracteres
CS [I] TSysCharSet (SysUtils), ensemble des caracteres a exclure.
Return :
String, chaine excluant tout les caracteres definis dans CS.
Exemple 1 :
// OldStr = '"; echo "tentative d'injection sql";
NewStr := ExcludeChars(OldStr, ['<','>',';','"','''','/']);
// NewStr = echo tentative dinjection sql
Exemple 2 :
const
CSNumber : TSysCharSet = ['0'..'9'];
CSSymbols: TSysCharSet = ['+','-','*','/','='];
...
NewStr := ExcludeChars(OldStr, CSNumber+CSSymbols);
}
function ExcludeChars(const S : string; const CS : TSysCharSet) : string;
var pR : PChar;
L,I,N: integer;
begin
L := Length(S);
I := 0;
for N := 1 to L do
if S[N] in CS then I := I + 1;
I := L - I;
if I = 0 then
begin
result := '';
exit;
end else
begin
SetLength(Result, I);
pR := PChar(Result);
for N := 1 to L do
if not (S[N] in CS) then
begin
pR[0] := S[N];
inc(pR);
end;
end;
end;