contar numero de strings
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!!!!
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
Curtidas 0
Respostas
Marco Salles
22/09/2006
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´
[b:d0647e9b7a]para chamar[/b:d0647e9b7a]
incoveniente é que é sensitive .. Mas isto pode ser melhorado se preferir
´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
GOSTEI 0
Macario
22/09/2006
Fica aqui uma sugestao utilizar [b:08d4be6406]ANSIUPPERCASE[/b:08d4be6406] quem sabe nao se consegue resolver esta limitacao.
Espero ter ajudado.
:roll:
Espero ter ajudado.
:roll:
GOSTEI 0
Raserafim
22/09/2006
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;
GOSTEI 0
Massuda
22/09/2006
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...
GOSTEI 0
Marco Salles
22/09/2006
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
GOSTEI 0