Alteração da função ALLTRIM()

Alguém sabe me dizer se a função AllTrim() removia os espaços de "TAB" na versão 12.1.17? Pois tenho uma customização que agora parou de funciona porque a função AllTrim() não remove caracter "TAB". Mas não sei se isso começou agora após atualização para 12.1.23 ou nunca chegou um registro com esse caracter especial.

Deparei com o mesmo problema na 12.1.33, usei a função FwCutOff. AllTrim( FwCutOff( " texto " ) ) . FwCutOff - Frameworksp - TDN

Boa tarde Emerson,

Até onde conheço o alltrim limpava tudo, inclusive os tab.

Bom dia Emerson,

Fiz testes com binários distintos, NG, Logo Guará etc, em nenhuma das versões o TAB foi removido.


Você pode encapsular o AllTrim do binário adicionando o seu comportamento, com uma função, método estático etc, veja um exemplo abaixo:


#include "protheus.ch"

//-------------------------------------------------------------------
/*{Protheus.doc} TStringUtils
Classe com métodos estáticos para tratamento de strings

@author Daniel Mendes
@since 28/01/2020
@version 1.0
*/
//-------------------------------------------------------------------
class TStringUtils from longnameclass
    static method TabAllTrim()
endclass

//-------------------------------------------------------------------
/*{Protheus.doc} TabAllTrim
Efetua o alltrim da string recebida
Também remove o TAB (Tabulação horizontal) - ASCII - 9

@param cValue Valor que será removidos os espaços

@return String sem espaços e tabs no começo e no final

@author Daniel Mendes
@since 28/01/2020
@version 1.0
*/
//-------------------------------------------------------------------
method TabAllTrim(cValue) class TStringUtils
return StrTran(AllTrim(cValue), Chr(9), "")

//-------------------------------------------------------------------
/*{Protheus.doc} u_AllTrim
Função de teste do método estático TStringUtils():TabAllTrim()

@author Daniel Mendes
@since 28/01/2020
@version 1.0
*/
//-------------------------------------------------------------------
function u_AllTrim()
local cString as char

cString := Chr(9) + "    Daniel"
cString := TStringUtils():TabAllTrim(cString)

ConOut(cString)
MsgInfo(cString)

return nil

Deparei com o mesmo problema na 12.1.33, usei a função FwCutOff.

Alltrim( FwCutOff( " texto " ) )

enter link description here