Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Averiguar el número de repeticiones de un caracter (https://www.clubdelphi.com/foros/showthread.php?t=16844)

Javi2 14-12-2004 09:44:14

Averiguar el número de repeticiones de un caracter
 
Hola, me gustaría saber si existe alguna función en Delphi que te devuelve el número de veces que existe un determinado caracter en una cadena.

(Por ejemplo, el número de repeticiones del caracter "&" en la cadena 'abc&&def&fg' sería 3).

Muchas gracias.

Neftali [Germán.Estévez] 14-12-2004 09:55:32

Bueno, no debería ser muy difícil crearla....

Código Delphi [-]
  function Repeticiones(const cadena:String; const ch:Char):Integer;
  var
    i, Count:Integer;
  begin
    // caracteres de la cadena
    Count := Length(cadena);
    // Inicializar
    Result := 0;
    // Para cada caracter de la cadena
    for i := 1 to (Count) do begin
      // es el que buscamos....
      if(cadena[i]=ch) then begin
        Result := Result + 1;
      end; // if
    end; // for
  end;


...o parecida...;)

llonigualker 14-12-2004 09:57:56

Este codigo te cambia todas las ocurrencias de una subcadena dentro de una cadena. Adaptalo a tus necesidades.

procedure TForm1.Button1Click(Sender: TObject);

function CambiaEn(Cadena, Esto, Por: String): String;
var
aPos: Integer;
begin
aPos := Pos(Esto, Cadena);
Result:= '';
while (aPos <> 0) do begin
Result := Result + Copy(Cadena, 1, aPos-1) + Por;
Delete(Cadena, 1, aPos + Length(Esto)-1);
aPos := Pos(Esto, Cadena);
end;
Result := Result+Cadena;
end;

var
ParaCambiar:string;

begin
ParaCambiar:='Un ejemplo en el que cambiar "cambiar"';
Label1.Caption:=CambiaEn(ParaCambiar,'cambiar','se cambio');
end;

Saludos.

Javi2 14-12-2004 10:04:05

Gracias a todos por las respuestas. Lo que realmente quería saber era si existía alguna función que me evitara hacer yo el código porque más de una vez me ha pasado que después de currarme una función, ya existía alguna que hacía prácticamente lo mismo.


Si nadie me dice que existe una función que haga esto utilizaré las vuestras.

Muchísimas gracias.

Neftali [Germán.Estévez] 14-12-2004 10:22:20

A mi no me suena, pero en todo caso busca en la ayuda de Delphi "String handling routines", entra en cualquierea de ellas y en el tercer párrafo verás el enlace:

Category
string handling routines

Revisa la lista que aparece.


La franja horaria es GMT +2. Ahora son las 23:56:14.

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