Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Funcion para buscar cadena dentro de otra cadena y el numero de veces (https://www.clubdelphi.com/foros/showthread.php?t=45423)

flystar 02-07-2007 22:31:22

Funcion para buscar cadena dentro de otra cadena y el numero de veces
 
Buenos Días:

Alguien conoce alguna funcion que sirva para buscar una cadena dentro de ota cadena y que mencione la cantidad de veces que aparece?

La funcion POS solo sirve para encontrar la primera cadena pero no sirve para que encuentre si hay mas.

POr ejemplo en la frase "El perro es veloz, pero tambien el perro muerde"
La subcadena "perro" aparece 2 veces y a partir de la posicion 4 y la posicion 36 aproximadamente, entonces en esa caso la funcion deberia decirme cuantas veces aparece esa cadena y sus posiciones.
Gracias. :(

gabrielkc 02-07-2007 22:38:33

Esto debe servir
 
Código Delphi [-]
function countstrings(Cadena:string;Buscar:string):Integer;
begin
 // Opcional si no quieres que sea Case Sencitive
 Cadena:=UpperCase(Cadena);
 Buscar:=UpperCase(Buscar);
 Result:=0;
 while Pos(Buscar,Cadena)<>0 do
  begin 
   Result:=Result+1;
   Delete(Cadena,1,Pos(Buscar,Cadena)+Length(Buscar));
  end
end;

Enan0 02-07-2007 22:41:57

Bueno aca te dejo una pequeña funcion que escribi.. con esto deberia funcionar, a simple vista lo hace.
Como veras el texto deberia entrar como parametro y ser asinado a la variable S y 'perro' deberias parametrizarlo para poder buscar cualquier cosa.
de todas maneras fijate si funciona bien

Código Delphi [-]
var I,n:Integer;
     s:string;
begin
    n:=0;
    i:=pos(s,'perro');
    while i>0 do begin
       inc(n);
      delete(s,1,i+length('perro'));
      i:=pos(s,'perro');
    end;
end;


Jajajaja creo que tarde mucho en escribirla :D jejejje

flystar 02-07-2007 22:48:08

Gracias por tu apoyo


La franja horaria es GMT +2. Ahora son las 05:25:02.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi