



Abaixo segue uma função que conta o número de vezes em que uma substring é
encontrada dentro de uma string.
É necessário estar declarado SysUtils na seção uses,
em versões unicode declare System.SysUtils.
Segue o código fonte da função:
1 2 3 4 5 6 7 8 9 | function CountPos(const subtext: string; Text: string): Integer; begin if (Length(subtext) = 0) or (Length(Text) = 0) or (Pos(subtext, Text) = 0) then Result := 0 else Result := (Length(Text) - Length(StringReplace(Text, subtext, '', [rfReplaceAll]))) div Length(subtext); end; |
Exemplo de uso:
1 2 3 4 5 6 7 8 9 10 11 | procedure TForm1.Button1Click(Sender: TObject); var teste : String; vCount : Integer; begin teste := 'O Show Delphi é uma comunidade que quer compartilhar' + ' conhecimento sobre o Delphi.'; vCount := CountPos('Delphi', teste); ShowMessage('Delphi foi encontrado ' + IntToStr(vCount) + ' vez(es)!' ); end; |
Você precisa fazer o login para publicar um comentário.
Muito Boa esta solução, só tinha encontrado utilizando while`s ou For`s duas ou mais vezes e não estava gostando da solução, Esta ficou perfeita e inclui um caseSensitive para complementar. Obrigado por compartilhar!