Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Leitura de um arquivo TXT com códigos em formato de notação

Tenho uma situação em que o arquivo .TXT apresenta códigos no formato de notação de ponto flutuante. Ao ler a tabela em questão, o QV retira o código sem transforma-lo em inteiro. Ex. o código apresenta conteúdo '1,3487E+12' no arquivo, porém o código correspondente a esse valor é '1348698712849'. Necessito que o Qv leia a segunda opção.

Grato

5 Replies
mauroponte
Creator II
Creator II

Jacy,

Voce poderia disponibilizar o TXT para eu tentar te ajudar?

TiagoCardoso
Creator II
Creator II

Jacy, no momento da carga, transforme este campo, que no exemplo vou chamar de 'campo' para numérico, ou texto (dependendo do seu futuro uso).

Aparentemente, isto que lhe ocorreu é uma transformação numérica que se dá pela 'máscara', que determina a precisão do número de caracteres que serão exibidos (que no seu caso, provavelmente deve ser '#,###)

Na carga, pode fazer as duas seguintes soluções:

Num(campo) AS campo

OU

Text(campo) AS campo -> caso este número nunca seja usado para expressões matemáticas no futuro.

Clever_Anjos
Employee
Employee

Use o algoritmo abaixo para converter de ponto flutuante para decimal

load mantissa*pow(10,expoente) as valor;

LOAD SubField(F1,'E',1) as mantissa, SubField(F1,'E',2) as expoente INLINE [

    F1

    "1,3487E+12"

];

Clever_Anjos
Employee
Employee

o único problema é que no arquivo se tiver 1,3487E+12 vai converter para 1348700000000 e não 1348698712849 porque no arquivo não tem toda a precisão

afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Jacy,

se usar evaluate() pode resolver

LOAD

        Campo1,

        evaluate( CampoNumeroGrande )   as Campo2 ,

        .

        .

......

furtado@farolbi.com.br