Olá pessoal…
Hoje vou mostrar uma função que desenvolvi que tira os zeros a esquerda de uma variável caracter (string) em AdvPL.
Essa função basicamente percorre a string, até achar a primeira posição que não seja 0, então se vc tiver um texto por exemplo, “00008765”, ele vai retornar “8765”.
Mas ai você me pergunta, não é só utilizar um cValToChar(Val()) da variável texto? Sim e não, sim se fosse somente o conteúdo numérico, mas pode ser que tenha letras, como por exemplo, “00008765A”, ao passar pela função, vai retornar “8765A”.
Abaixo a função desenvolvida:
//Bibliotecas #Include "Protheus.ch" /*/{Protheus.doc} zTiraZeros Função que tira zeros a esquerda de uma variável caracter @author Atilio @since 19/07/2017 @version undefined @param cTexto, characters, Texto que terá zeros a esquerda retirados @type function @example Exemplos abaixo: u_zTiraZeros("00000090") //Retorna "90" u_zTiraZeros("00000909") //Retorna "909" u_zTiraZeros("0000909A") //Retorna "909A" u_zTiraZeros("000909AB") //Retorna "909AB" /*/ User Function zTiraZeros(cTexto) Local aArea := GetArea() Local cRetorno := "" Local lContinua := .T. Default cTexto := "" //Pegando o texto atual cRetorno := Alltrim(cTexto) //Enquanto existir zeros a esquerda While lContinua //Se a priemira posição for diferente de 0 ou não existir mais texto de retorno, encerra o laço If SubStr(cRetorno, 1, 1) <> "0" .Or. Len(cRetorno) ==0 lContinua := .f. EndIf //Se for continuar o processo, pega da próxima posição até o fim If lContinua cRetorno := Substr(cRetorno, 2, Len(cRetorno)) EndIf EndDo RestArea(aArea) Return cRetorno
Bom pessoal, por hoje é só.
Abraços e até a próxima.
Boa Tarde,
Gostaria de sugerir para ensinar a integração do excel com protheus através do suplemento APEXCEL80.
Uma vez eu vi alguem fazendo e achei interessante.
Boa noite Mauricio, tudo bem?
Opa, irei colocar aqui nas sugestões, pretendo fazer algumas aulas sobre o FWMSExcel.
Um grande abraço.