GARANTIR DESCONTO

Fórum contar numero de strings #329863

22/09/2006

0

fala galera ,
Alguem sabe se existe uma função no delphi para eu poder contar qts caracteres existem em uma string???
Exemplo:

Tenho essa string -> 0000000,000000,000000 ( quero saber qts virgulas existem)

Vlw!!!!


Tdqr

Tdqr

Responder

Posts

22/09/2006

Marco Salles

se tem , a principio foi ocultado pela referencia do Marcu cantu no seu livro delphi7.0 sobre a pesquisa de multiplas ocorrencias de uma String dentro de Outra.

´Introduziu em seu capitulos inicais sobre String a função PosAu´


function CountSubExt(texto,subString:String):integer; var i,posicao:integer; begin result:=0; posicao:=PosEx(SubString,texto,0); while posicao > 0 do begin result:=result+1; posicao:=PosEx(SubString,texto,posicao+length(subString)); end; end;


[b:d0647e9b7a]para chamar[/b:d0647e9b7a]
procedure TForm1.Button1Click(Sender: TObject); begin showmessage(inttostr(CountSubString(edit1.text,´,´))); end;


incoveniente é que é sensitive .. Mas isto pode ser melhorado se preferir


Responder

Gostei + 0

22/09/2006

Macario

Fica aqui uma sugestao utilizar [b:08d4be6406]ANSIUPPERCASE[/b:08d4be6406] quem sabe nao se consegue resolver esta limitacao.


Espero ter ajudado.


:roll:


Responder

Gostei + 0

22/09/2006

Raserafim

caso vc não encontre uma função, pode fazer o seguinte:
var
  S: String;
  I: Integer;
  Qtd: Integer;
begin
  S := ´0000,0000,000000,0000000´;
  Qtd := 0;
  for I := 0 to Length(S) - 1 do
  begin
    if S[I] = ´,´ then
      Qtd := Qtd + 1;
  end;
  ShowMessage(inttostr(Qtd));

end;



Responder

Gostei + 0

22/09/2006

Massuda

Uma pequena correção ao código do raserafim... os caracteres de uma string são indexados a partir de 1, então o correto seria:
for I := 1 to Length(S) do...



Responder

Gostei + 0

22/09/2006

Marco Salles

ncoveniente é que é sensitive .. Mas isto pode ser melhorado se preferir


Fica aqui uma sugestao utilizar ANSIUPPERCASE quem sabe nao se consegue resolver esta limitacao.


sim , a função pode ser melhorada

raserafim , o Modelo inicial acredito ser mais otimizado , pois evita repetiçoes desnecessária.
Uasr um For e um If e fazer uma varredura em toda a string algo que é dispensada pelo uso da Função PosEx.. Que usa como um parametro uma posição inicial... Assim , ela é otimizada pois a pesquisa realizada internamente pelo compilador levara em conta o Valor dessa possição inicial


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar