Função que conta a repetição de caracteres em uma string em AdvPL

Função que conta a repetição de caracteres em uma string em AdvPL

Olá pessoal…

Hoje vou mostrar uma função desenvolvida que conta a repetição de um caracter em uma string (por exemplo, a letra i em Terminal de Informação, repete 2 vezes).

AdvPL
AdvPL

Essa função desenvolvida, recebe 3 parâmetros, o primeiro é a string completa, a segunda é o caracter buscado, e a terceira é se irá transformar tudo em maiúsculo antes de comparar.

//Bibliotecas
#Include "Protheus.ch"

/*/{Protheus.doc} zConta
Função que conta quantos caracteres repetem em uma string
@type function
@author Atilio
@since 13/11/2016
@version 1.0
	@param cPalavra, character, Palavra a ser considerada
	@param cCaracter, character, Caracter a ser procurado
	@param lMaiusculo, logic, Transforma tudo em maiusculo
	@return nTotal, Total de caracteres encontrados
	@example
	u_zConta("Daniel Atilio", "a", .T.) //retorna 2
/*/

User Function zConta(cPalavra, cCaracter, lMaiusculo)
	Local aArea       := GetArea()
	Local nTotal      := 0
	Local nAtual      := 0
	Default cPalavra  := ""
	Default cCaracter := ""
	
	//Se transforma tudo em maiusculo
	If lMaiusculo
		cPalavra  := Upper(cPalavra)
		cCaracter := Upper(cCaracter)
	EndIf
	
	//Percorre todas as letras da palavra
	For nAtual := 1 To Len(cPalavra)
		//Se a posição atual for igual ao caracter procurado, incrementa o valor
		If SubStr(cPalavra, nAtual, 1) == cCaracter
			nTotal++
		EndIf
	Next
	
	RestArea(aArea)
Return nTotal

Esses e outros códigos, estão disponíveis gratuitamente no nosso GitHub, acesse em github.com/dan-atilio/AdvPL.

Bom pessoal, por hoje é só.
Abraços e até a próxima.

About Dan_Atilio

Analista e desenvolvedor de sistemas. Técnico em Informática pelo CTI da Unesp. Graduado em Banco de Dados pela Fatec Bauru. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor do projeto Terminal de Informação, onde são postados tutoriais e notícias envolvendo o mundo da tecnologia.

Deixe uma resposta

%d blogueiros gostam disto: