Qual a diferença entre SubStr e SubString?

No artigo de hoje, vamos falar sobre a diferença entre utilizar a função SubStr e SubString em AdvPL e TL++.

Geralmente para pegar parte de uma string, utilizamos a função SubStr, que recebe a posição inicial, e a quantidade de caracteres que irá buscar.

Só que existe uma outra função, que faz algo similar, a SubString. Mas como assim similar?

A grande diferença das duas, é com a SubStr, você não precisa passar a quantidade de caracteres que irá buscar, sendo um parâmetro opcional, já na SubString é obrigatório passar essa informação.

Abaixo um exemplo de um código fonte ilustrando esse cenário.

//Bibliotecas
#Include "TOTVS.ch"

/*/{Protheus.doc} User Function zTstSubs
Função criada para testar a diferença entre SubStr e SubString
@type  Function
@author Atilio
@since 01/06/2022
@version version
/*/

User Function zTstSubs()
    Local aArea  := FWGetArea()
    Local cTexto := "Atilio Sistemas"

	Alert(SubStr(   cTexto, 8, 3)) //"Sis" (a partir da posição 8, pegando 3 caracteres)
    Alert(SubStr(   cTexto, 8   )) //"Sistemas" (a partir da posição 8)
    Alert(SubString(cTexto, 8, 3)) //"Sis" (a partir da posição 8, pegando 3 caracteres)
    Alert(SubString(cTexto, 8   )) //Error Log (com Substring, é obrigatório passar a quantidade de caracteres)

    FWRestArea(aArea)
Return

Dica enviada pelo Bruno Comin ( LinkedIn ).

Bom pessoal, por hoje é só.

Abraços e até a próxima.

Dan (Daniel Atilio)
Especialista em Engenharia de Software pela FIB. Entusiasta de soluções Open Source. E blogueiro nas horas vagas.

Deixe uma resposta