Cómo encontrar una cadena dentro de otra

12433 vistas

Para buscar una cadena dentro de otra hay que usar la función Pos(Substr: string; S: string): Integer; Esta función devuelve la posicoón de la primera coincidencia de Substr en S.



delphi
  1. Pos('CD','ABCDEF'); { devuelve3 }



Para buscar una cadena a partir de una posición dada existe la función PosEx(const SubStr, S: string; Offset: Cardinal = 1): Integer;.
Miremos el siguiente ejemplo de uso. Esta función cuenta el número de veces que aparece una cadena:



delphi
  1. Function Cuenta(Const SubStr: String; Const s: String): Integer;
  2. Var i: Integer;
  3. begin
  4.   Result := 0;
  5.   i := 0;
  6.   Repeat
  7.     i := PosEx(SubStr, s, i+1);
  8.     If i<>0 Then
  9.       Inc(Result);
  10.   Until i=0;
  11. End;



Atención: PosEx se añadió en Delphi 6