Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
mercadante
Creator
Creator

Preencher com espaço CPF/CNPJ

Caros,

Boa tarde!

Alguém pode me ajudar com a necessidade abaixo.

Estou importando um arquivo CSV onde a delimitação é por posição.

Eu trato este arquivo e faço um store em CSV (TXT), porem ele não ocupa as 14 posições

É possivel formatar o campo com 14 posições mesmo que seja preenchido somente com um CPF 11 posições?

Obrigado!

Atte.

Mercadante

1 Solution

Accepted Solutions
Clever_Anjos
Employee
Employee

Se for utilizar o caracter 32, cuidado que se todos os seus campos forem numéricos o QV pode tentar transformar em número.

Utilize Set Verbatim=1;

e a função Text para evitar que isso ocorra

Exemplo:

SET Verbatim='1';

Characters:

LOAD

text(chr(32) & chr(32) &chr(32) &chr(32) &chr(32) & RecNo()) as Num,

text(if( Len(CNPJ) = 14, CNPJ, Repeat(Chr(32), 14 - Len(CNPJ)) & CNPJ )) as CNPJ

autogenerate 100;

View solution in original post

7 Replies
nicolett_yuri

Utilize o Chr(32), ele simula um caractere de espaço.

Exemplo:

Chr(32)&Chr(32)&Chr(32)&CNPJ

Claro que você primeiro deverá identificar quantas casas estão faltando para depois concatenar a quantidade correta, mais ou menos assim:

if( Len(CNPJ) = 14, CNPJ, Repeat(Chr(32), 14 - Len(CNPJ)) & CNPJ ) as CNPJ

Clever_Anjos
Employee
Employee

Se for utilizar o caracter 32, cuidado que se todos os seus campos forem numéricos o QV pode tentar transformar em número.

Utilize Set Verbatim=1;

e a função Text para evitar que isso ocorra

Exemplo:

SET Verbatim='1';

Characters:

LOAD

text(chr(32) & chr(32) &chr(32) &chr(32) &chr(32) & RecNo()) as Num,

text(if( Len(CNPJ) = 14, CNPJ, Repeat(Chr(32), 14 - Len(CNPJ)) & CNPJ )) as CNPJ

autogenerate 100;

mercadante
Creator
Creator
Author

Clever,

Inclui o SET Verbatim='1'; no código e resolveu parte do meu problema.

Preciso remover o caracter "apostrofo" ', mas com replace não consigo. Você tem ideia de como fazer isso?

Clever_Anjos
Employee
Employee

Eu usaria o KeepChar(Campo,'0123456789-.') que vai manter apenas os caracteres que você precisar

mercadante
Creator
Creator
Author

Clever,

Funcionou, utilizei o Replace com mapsubstring.

Ficou Show.

Estou gerando um arquivo CSV na rede, porem ele não tem delimitador, é posicional.

O que fiz foi concatenar todos os campos, assim quando dou o store ele salva na posição correta.

O que preciso agora é descobrir como não gravar o cabeçalho, pois é para importar no MasterSAF.

Obrigado Pela Ajuda!!!

mercadante
Creator
Creator
Author

Yuri,

Muito obrigado pela ajuda!!!

aderlanrm
Partner - Specialist
Partner - Specialist

Exportar para TXT

Aderlan Rodrigues
Analista, Arquiteto de Dados e Piloto Amador Drone FPV
 (41) 9 9917-0869  www.BIdeAZ.com.br  Youtube.com/bideaz  Instagram.com/bideaz.in

"Nada é tão inútil quanto fazer eficientemente o que não deveria ser feito." (Peter Drucker)