16992 - Caracter especial função RetiraCaracteresEspeciais
Problema: Descrição do Problema:
Ao fazer a remessa de cobrança escritural, ocorre erro caso existam caracteres como %, $, &, etc. mas não ocorre erro quando existem espaços, pontos ou virgulas. Como a função RetiraCaracteresEspeciais elimina também os espaços, inviabiliza o uso, sendo necessária a criação de toda um rotina para que permaneçam pelo menos os espaços.
Rotina / Tela: Comportamento função
Solução: Solução:
A função RetiraCaracteresEspeciais foi desenvolvida para deixar somente letras e números na string, por isso tem esse comportamento.
Teria que existir alguma outra função com um parâmetro que pudesse informar qual caracteres gostaria de eliminar, porém atualmente não temos.
Dessa forma, é necessário fazer uma tratamento parecido com esse abaixo para exclusão do caracter desejado:
@Essa regra serve para tirar % entre os campos@
Definir alfa vteste;
vteste=Limpa espaco %A B C;
TamanhoAlfa(vteste,vtam);
Para (i=1;i<=vtam;i++)
Inicio
PosicaoAlfa(%,vteste,VRet);
Se (vret=0)
Pare;
DeletarAlfa(vteste,Vret,1);
InserirAlfa (,vteste,vret);
Fim;
Ao fazer a remessa de cobrança escritural, ocorre erro caso existam caracteres como %, $, &, etc. mas não ocorre erro quando existem espaços, pontos ou virgulas. Como a função RetiraCaracteresEspeciais elimina também os espaços, inviabiliza o uso, sendo necessária a criação de toda um rotina para que permaneçam pelo menos os espaços.
Rotina / Tela: Comportamento função
Solução: Solução:
A função RetiraCaracteresEspeciais foi desenvolvida para deixar somente letras e números na string, por isso tem esse comportamento.
Teria que existir alguma outra função com um parâmetro que pudesse informar qual caracteres gostaria de eliminar, porém atualmente não temos.
Dessa forma, é necessário fazer uma tratamento parecido com esse abaixo para exclusão do caracter desejado:
@Essa regra serve para tirar % entre os campos@
Definir alfa vteste;
vteste=Limpa espaco %A B C;
TamanhoAlfa(vteste,vtam);
Para (i=1;i<=vtam;i++)
Inicio
PosicaoAlfa(%,vteste,VRet);
Se (vret=0)
Pare;
DeletarAlfa(vteste,Vret,1);
InserirAlfa (,vteste,vret);
Fim;