String

Delphi

07/04/2004

Pessoal,

Alguém sabe qual função devo usar para saber quantas vezes uma caracter aparece em uma string?

Obrigada.

Fernanda


Feberaldo

Feberaldo

Curtidas 0

Respostas

Skaarj

Skaarj

07/04/2004

Usando o mesmo processo da contagem de palavras de um StringList.. Joga-se cada letra como se fosse uma palavra:
var
  Palavras: TStringList;
  Index,i,cont,j: Integer;
  texto : String;
begin
  texto := Edit1.Text;
  Palavras := TStringList.Create;
  try
    cont:=0;
    i:=1;

    for j:=0 to length(texto) do
    begin
      Palavras.Add(texto[j]);
    end;

    Palavras.Sort;
    if Palavras.Find(´i´, Index) then
    begin

      inc(cont);
      i:=index;
      while Palavras.Strings[i] = ´i´ do
        begin
          inc(cont); 
          inc(i); 
        end; 
      label1.caption:=inttostr(cont);
    end; 
  finally 
    Palavras.Free; 
  end;



GOSTEI 0
Marcelo Saviski

Marcelo Saviski

07/04/2004

tente assim:

function ContaCaracteres(Texto: string; Caracter: Char): Integer;
var
  I: Integer;
begin
  Result := 0;
  for I := 1 to Length(Texto) do
    if Texto[I] = Caracter then 
      Inc(Result);
end;


A função passa por todos os caracteres e verifica se é o caracter epecificado, se for, incrementa o contador de quantas vezes o caracter se repete.

[color=blue:0a6a47c988]Exemplo de uso[/color:0a6a47c988], Inclua um Edit:

ShowMessage(´Nº de vezes que o caracter ´_´ aparece no Edit = ´ + IntToStr(ContaCaracteres(Edit1.Text, ´_´)));


GOSTEI 0
Thomaz_prg

Thomaz_prg

07/04/2004

function contachar( frase:string ; qch:string):integer
var
tm,i,qtd:integer;
begin
tm:=length(string);
qtd:=0;
for i:=1 to tm do
if copy(frase,i,1)=qch then
qtd:=qtd+1;
result:= qtd;
end;

sintaxe: contachar( <StringAVerificar> , <CaracterAProcurar> );
Retorno: Valor Inteiro Referente a Quantidade de Vezes que <CaracterAProcurar> apareceu em <StringAVerificar>.

Exemplo de Uso

qvezes:=contachar(´sistema de delphi´,´e´);

O valor de qvezes será 3, pois o caracter ´e´ apareceu 3 vezes na string.

Espero ter ajudado!


GOSTEI 0
POSTAR