Página 1 de 1

Retirar CRLF de arquivo CSV

Enviado: 02 Fev 2017 14:13
por gilbertosilverio
Ola amigos,

Tenho que importar dados de um arquivo texto CSV, e dentro de um dos campos, o campo de endereço, existe a quebra de linha, ou seja o CHR(13)+CHR(10).

Como faço para tirar esta quebra de linha ou desprezar ele, e manter todo o conteúdo deste campo endereco em uma unica variavel.

Código: Selecionar todos

processing;LOJASAMERICANAS;264020229702;575;28.2400;08597577908;"Miguel Felipe Lohmeyer";Bino;"RUA Rubens Gonçalves de Freitas
517

Tupi";;;;;11703130;"São Paulo";"Praia Grande";BR;1334720994;;;1133;"PENTE EXTRATOR PIOLHOS/LENDEAS ZHALINGER  (UNICO) ";1.0000;17.2800;10.9600;0.0000


   oFile := TFileRead():New( @xARQ )
   oFile:Open()
   DO WHILE oFile:MoreToRead()

      cTxt := oFile:ReadLine()

         Tp_Pedido   := PegaBloco( @cTxt, ";" ) // Status                A   processing
         Loja        := PegaBloco( @cTxt, ";" ) // Loja                  B   LOJASAMERICANAS
         N_Ped_Loja  := PegaBloco( @cTxt, ";" ) // Pedido MarketPlace    C   264022590905
         Cod_Loja    := PegaBloco( @cTxt, ";" ) // Pedido Magento        D   577
         VLR_PEDIDO  := PegaBloco( @cTxt, ";" ) // Valor Total           E   59.6200
         CPF         := PegaBloco( @cTxt, ";" ) // CPF                   F   13315985758

         xNOME       := PegaBloco( @cTxt, ";" ) // Nome;Sobrenome        G+H Tatiane;(Aline);
         xSOBRENOME  := PegaBloco( @cTxt, ";" ) // Sobrenome             G+H Tatiane;(Aline);

         ENDERECO    := PegaBloco( @cTxt, ";" ) // Endereço             I   ESTRADA Olegário Dias941casa 231Queimados

         NUMERO      := PegaBloco( @cTxt, ";" ) // Número               J   NUMERO
         COMPLEME    := PegaBloco( @cTxt, ";" ) // Complemento           K   COMP
         DICA        := PegaBloco( @cTxt, ";" ) // Complemeto2           L   COMP2
         BAIRRO      := PegaBloco( @cTxt, ";" ) // Bairro                M   BAIRRO
         CEP         := PegaBloco( @cTxt, ";" ) // CEP                   N   26311250
         UF          := PegaBloco( @cTxt, ";" ) // ESTADO                O   Rio de Janeiro
         MUNICIPIO   := PegaBloco( @cTxt, ";" ) // CIDADE                P   Queimados
         PAIS        := PegaBloco( @cTxt, ";" ) // PAIS                  Q   BR
         TEL01       := PegaBloco( @cTxt, ";" ) // TELE1                 R   21984279722
         TEL02       := PegaBloco( @cTxt, ";" ) // Tele2                 S   TELE2
         TEL03       := PegaBloco( @cTxt, ";" ) // Tele3                 T   TELE3
         CODPRO      := PegaBloco( @cTxt, ";" ) // SKU                   U   5630
         DESCRICAO   := PegaBloco( @cTxt, ";" ) // Produto               V   Kit  Primeiros Passos - Rosa
         QTDE        := PegaBloco( @cTxt, ";" ) // Quantidade            W   1.0000
         VALORUNIT   := PegaBloco( @cTxt, ";" ) // Preço                X   45.1000
         FRETE       := PegaBloco( @cTxt, ";" ) // Frete                 Y   14.5200
         DESCONTO    := PegaBloco( @cTxt, ";" ) // Desconto Boleto       Z   0.0000

         DIA         := []                      //
         SEQ01       := []
         SEQ02       := []
         SEQ03       := []
         SEQ04       := []
         SEQ05       := []
         SEQ06       := []
         SEQ07       := []

         NOME        := ALLTRIM(xNOME)+[ ]+ALLTRIM(xSOBRENOME)

         IF TP_PEDIDO = [processing]
            xMARCA:=[X]
         ELSE
            xMARCA:=[ ]
         ENDIF

         AADD( MATA, { xMARCA                                     , ;                                       
                       TP_PEDIDO +SPAC(20-LEN(ALLTRIM(TP_PEDIDO))), ;                                      
                       LOJA      +SPAC(20-LEN(ALLTRIM(LOJA)))     , ;                                       
                       N_PED_LOJA+SPAC(20-LEN(ALLTRIM(TP_PEDIDO))), ;                                       
                       COD_LOJA  +SPAC(15-LEN(ALLTRIM(COD_LOJA))) , ;                                       
                       STR(VAL(SPAC(12-LEN(ALLTRIM(VLR_PEDIDO)))+ALLTRIM(VLR_PEDIDO)),12,2), ;             
                       TRANSF( PADL(CPF, 11, [0] )+SPAC(11-LEN(ALLTRIM(CPF))), [@R 999.999.999-99] )   , ;  
                       RETIRAACENTO(hb_ANSITOOEM( ALLTRIM(NOME)))+SPAC(50-LEN(ALLTRIM(NOME)))          , ;  
                       RETIRAACENTO(hb_ANSITOOEM( ALLTRIM(ENDERECO)))+SPAC(50-LEN(ALLTRIM(ENDERECO)))  , ; 
                       NUMERO    +SPAC(10-LEN(ALLTRIM(NUMERO  )))                                      , ;  
                       RETIRAACENTO(hb_ANSITOOEM( ALLTRIM(COMPLEME)))+SPAC(50-LEN(ALLTRIM(COMPLEME)))  , ; 
                       RETIRAACENTO(hb_ANSITOOEM( ALLTRIM(DICA)))+SPAC(50-LEN(ALLTRIM(DICA)))          , ;  
                       RETIRAACENTO(hb_ANSITOOEM( ALLTRIM(BAIRRO)))+SPAC(30-LEN(ALLTRIM(BAIRRO)))      , ;  
                       CEP       +SPAC(09-LEN(ALLTRIM(CEP)))      , ;                                       
                       UF        +SPAC(02-LEN(ALLTRIM(UF)))       , ;                                       
                       RETIRAACENTO(hb_ANSITOOEM( ALLTRIM(MUNICIPIO)))+SPAC(30-LEN(ALLTRIM(MUNICIPIO))), ;  
                       PAIS      +SPAC(20-LEN(ALLTRIM(PAIS)))     , ;                                       
                       TEL01     +SPAC(15-LEN(ALLTRIM(TEL01)))    , ;                                      
                       TEL02     +SPAC(15-LEN(ALLTRIM(TEL02)))    , ;                                       
                       TEL03     +SPAC(15-LEN(ALLTRIM(TEL03)))    , ;                                       
                       CODPRO    +SPAC(06-LEN(ALLTRIM(CODPRO)))   , ;                                      
                       RETIRAACENTO(hb_ANSITOOEM( ALLTRIM(DESCRICAO)))+SPAC(50-LEN(ALLTRIM(DESCRICAO))), ;  
                       STR(VAL(SPAC(10-LEN(ALLTRIM(QTDE)))+QTDE),10)            , ;                         
                       STR(VAL(SPAC(12-LEN(ALLTRIM(VALORUNIT)))+VALORUNIT),12,2), ;                         
                       STR(VAL(SPAC(12-LEN(ALLTRIM(FRETE)))+FRETE),12,2)        , ;                         
                       DIA                                 , ;                                              
                       SEQ01+SPAC(10-LEN(ALLTRIM(SEQ01)))  , ;                                              
                       SEQ02+SPAC(35-LEN(ALLTRIM(SEQ02)))  , ;                                              
                       SEQ03+SPAC(15-LEN(ALLTRIM(SEQ03)))  , ;                                              
                       SEQ04+SPAC(15-LEN(ALLTRIM(SEQ04)))  , ;                                              
                       SEQ05+SPAC(20-LEN(ALLTRIM(SEQ05)))  , ;                                              
                       SEQ06+SPAC(10-LEN(ALLTRIM(SEQ06)))  , ;                                              
                       SEQ07+SPAC(10-LEN(ALLTRIM(SEQ07)))  } )                                              
      ENDIF
   ENDDO

   oFile:Close()

   IF LEN(MATA) > 0
      SETMODE(30,110)
      SETCOLOR(COR10)
      CLEAR
      TITULO:= {[ ], [Tp_Pedido], [Loja],  [N_Ped_Loja], [Cod_Loja], [VLR_PEDIDO], [CPF],   [NOME],  [ENDERECO], [NUMERO], [COMPLEME], [DICA],      [BAIRRO], ;
                [CEP],[UF],[MUNICIPIO],[PAIS],[TEL01],[TEL02], [TEL03], [CODPRO], [DESCRICAO], [QTDE],[VALORUNIT], [FRETE],  ;
                [DIA],[sEQ01], [SEQ02],[SEQ03],[SEQ04],[SEQ05], [SEQ06], [SEQ07]  }
      nROW:=NIL
      @ 29,00 SAY PADC([ <ESC>Sair <F10>Gerar Pedido  ], 110 ) color(cor3)
      abro_ler_txt( MATA, 00, 00, 28, 109, TITULO)
      SETMODE(25,80)
      SAIR()
   ENDIF

RETURN NIL



Alguma dica.

Grato

Retirar CRLF de arquivo CSV

Enviado: 02 Fev 2017 18:03
por alxsts
Olá!

Somente este campo do arquivo pode conter Chr(13) + Chr(10)?

Dica: evite postar dados reais de pessoas ou empresas, assim como senhas e outros dados confidenciais.

Retirar CRLF de arquivo CSV

Enviado: 02 Fev 2017 20:45
por gilbertosilverio
Ola,

Isso, somente o campo endereço vem assim, como no exemplo...

Nao sei por que os caras mesclaram tudo, preciso retirar estes CRLF para deixar em uma unica linha, alguma dica?

Grato.