Exclure des caracteres d'une chaine.


Contenu du snippet

{ 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;

Compatibilité : Delphi 5

Disponible dans d'autres langages :

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.