[firebase-br] Conversao de valores

Maria Ap Rosa da Silva mariaaprs em hotmail.com
Sáb Set 29 17:02:42 -03 2007


origem é em clarion com sql, este é o arquivo que geraram pra mim:
(R,Numero, Data, Data Emissão, Série, Valor, Fornecedor
D,Numero, Produto, Quantidade, Valor Unitário, Total, Icms, Vlr Unit Liquido

R,004556,'2007-08-01','3',8452.50,12211
D,004556,3591,14700.00,0.5750,8452.50,0.00,8452.50)

como a separação é feita com virgula, então criei esta rotina:
     try
          if opendialog1.Execute then
          begin
              assignfile(arq,opendialog1.FileName);//escolhe o arquivo txt
              reset(arq); //posiciona no inicio do arquivo
              vm_importado:=0;
              vm_alterado:=0;
              contador:=0;

              Memo.Clear;
              Memo.Lines.Add('||> Importação: '+ opendialog1.FileName +' 
<||');
              Memo.Lines.Add('    ');

              // importação
              while not eof(arq) do
              begin
                  readln(arq,s); //grava o conteudo da linha na variavel s
                  contador:=contador + 1;
                  if contador > 3 then
                  begin

                          posicao:=copy(s,1,1);
                          // MESTRE  
********************************************
                          IF posicao = 'R' THEN
                          begin
                                posicao1:=Pos(',',s);
                                s:=copy(s,posicao1+2,Length(s));

                                posicao2:=Pos(',',s);
                                lpr_numero_nota:=copy(s,1,posicao2-1);
                                s1:=copy(s,posicao2+2,Length(s));

                                posicao3:=Pos(',',s1);
                                lpr_data_emissao:=copy(s1,1,posicao3-2);
                                data:=copy(lpr_data_emissao,6,2)+ 
'/'+copy(lpr_data_emissao,09,2)+ '/'+ copy(lpr_data_emissao,01,4);
                                s2:=copy(s1,posicao3+2,Length(s1));

                                posicao4:=Pos(',',s2);
                                lpr_serie:=copy(s2,1,posicao4-2);
                                s3:=copy(s2,posicao4+2,Length(s2));

                                posicao5:=Pos(',',s3);
                                lpr_valor_nota:=copy(s3,1,posicao5-1);
                                 s4:=copy(s3,posicao5+1,Length(s3));

                                for_cod:=copy(s4,1,posicao5-1);

                               Qrpesquisa.Close;
                               Qrpesquisa.ParamByName('NOTA').AsInteger := 
QrnotasLPR_NUMERO_NOTA.AsInteger;
                               Qrpesquisa.ParamByName('CODIGO').AsInteger := 
QrpesquisaFOR_COD.AsInteger;
                               Qrpesquisa.Open;
                                if Qrpesquisa.recordcount = 0 then
                                begin
                                    Qrnotas.Append;


                                    QrnotasLPR_NUMERO_NOTA.AsInteger   := 
strtoint(LPR_NUMERO_NOTA);
                                    QrnotasLPR_DATA_EMISSAO.AsDateTime := 
strtodate(data);
                                    QrnotasLPR_SERIE.AsInteger         := 
strtoint(LPR_SERIE);
                                    QrnotasLPR_VALOR_NOTA.Value        := 
strtoint(LPR_VALOR_NOTA);
                                    QrnotasFOR_COD.Value               := 
strtoint(FOR_COD);

                                    Qrnotas.Post;
                                 end;
                        end;
                        // FIM MESTRE  
********************************************



                        // DETALHE     
********************************************
                        IF posicao = 'D' THEN
                        begin
                          posicao1:=Pos(',',s);
                       //   lpr_numero_nota:=copy(s,1,posicao2+2);
                          s1:=copy(s,posicao1+2,Length(s));

                          posicao2:=Pos(',',s1);
                          pro_cod:=copy(s1,1,posicao2-1);
                          s2:=copy(s1,posicao2+2,Length(s1));

                          posicao3:=Pos(',',s2);
                          ilp_qde:=copy(s2,1,posicao3-1);
                          s3:=copy(s2,posicao3+2,Length(s2));

                          posicao4:=Pos(',',s3);
                          ilp_custo_unitario:=copy(s3,1,posicao4-1);
                          s4:=copy(s3,posicao4+2,Length(s3));

                          posicao5:=Pos(',',s4);
                          ilp_custo_total:=copy(s4,1,posicao5-1);
                          s5:=copy(s4,posicao5+2,Length(s4));

                          posicao6:=Pos(',',s5);
                          ilp_icms:=copy(s5,1,posicao7-1);
                          s6:=copy(s3,posicao6,Length(s5));

                          ilp_custo_unit_liq:=copy(s6,1,2);

                          Qrpesquisa.Close;
                          Qrpesquisa.ParamByName('NOTA').AsInteger := 
QrnotasLPR_NUMERO_NOTA.AsInteger;
                          Qrpesquisa.ParamByName('CODIGO').AsInteger := 
QrpesquisaFOR_COD.AsInteger;
                          Qrpesquisa.Open;
                          if Qrpesquisa.recordcount = 0 then
                          begin
                              Qrnotas.Append;


                               QrnotasLPR_NUMERO_NOTA.AsInteger   := 
strtoint(LPR_NUMERO_NOTA);
                               QrnotasLPR_DATA_EMISSAO.AsDateTime := 
strtodate(LPR_DATA_EMISSAO);
                               QrnotasLPR_SERIE.AsInteger         := 
strtoint(LPR_SERIE);
                               QrnotasLPR_VALOR_NOTA.Value        := 
strtoint(LPR_VALOR_NOTA);
                               QrnotasFOR_COD.Value               := 
strtoint(FOR_COD);

                             Qrnotas.Post;
                            end;

                          end;
                  end;
              end;
          end;
       finally
          if opendialog1.FileName <> ''then
          begin
             closefile(arq);
             showMessage('     Importação OK     ');
          end
          else
             showMessage('     Importação Cancelada     ');
       end;
       Memo.Lines.Add('       ');
       
Memo.Lines.Add('***************************************************');
       Memo.Lines.Add('Quantidade de Registros Importados = '+ 
inttostr(vm_importado));
       Memo.Lines.Add('       ');
       
Memo.Lines.Add('***************************************************');
       Memo.Lines.Add('Quantidade de Registros Alterados  = '+ 
inttostr(vm_alterado));

       if SaveDialog1.Execute then
       begin
           Memo.Lines.SaveToFile(SaveDialog1.FileName);
           //Memo.Clear;
       end;


O novo campo é LPR_VALOR_NOTA do tipo double precision


>From: "Anderson Miranda Barrozo" <andersonpaduarj em hotmail.com>
>Reply-To: FireBase <lista em firebase.com.br>
>To: lista em firebase.com.br
>Subject: Re: [firebase-br] Conversao de valores
>Date: Sat, 29 Sep 2007 18:39:16 +0000
>
>Maria,
>
>      Esclareca um pouco mais:
>
>          . Arquivo origem também e Interbase.
>          . Qual tipo de campo estava Arquivo Origem e qual tipo campo novo
>ARQUIVO.
>          . Vc criou uma rotina para fazer esta transferencia ou esta 
>usando
>alguma ferramenta.
>
>Anderson Miranda
>
>
> >From: "Maria Ap Rosa da Silva" <mariaaprs em hotmail.com>
> >Reply-To: FireBase <lista em firebase.com.br>
> >To: lista em firebase.com.br
> >Subject: [firebase-br] Conversao de valores
> >Date: Sat, 29 Sep 2007 14:59:45 -0300
> >
> >boa tarde a todos, preciso de ajuda urgente.
> >Estou desenvolvendo um sistema em Delphi e Interbase
> >Gostaria de saber como faço para importar valores.
> >Quero importar notas fiscais de outro sistema, já me pasaram o arquivo a
> >ser
> >importado, só que quando chega no valor da nota, dá mensagem: 250.00 is 
>not
> >a valid integer value.
> >como faço para tirar a virgula?
> >
> >_________________________________________________________________
> >Inscreva-se no novo Windows Live Mail beta e seja um dos primeiros a 
>testar
> >as novidades-grátis. Saiba mais:
> >http://www.ideas.live.com/programpage.aspx?versionId=5d21c51a-b161-4314-9b0e-4911fb2b2e6d
> >
> >
> >______________________________________________
> >FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> >Para editar sua configuração na lista, use o endereço
> >http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> >Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>_________________________________________________________________
>Chegou o Windows Live Spaces com rede social. Confira
>http://spaces.live.com/
>
>
>______________________________________________
>FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>Para editar sua configuração na lista, use o endereço 
>http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>Para consultar mensagens antigas: http://firebase.com.br/pesquisa

_________________________________________________________________
Inscreva-se no novo Windows Live Mail beta e seja um dos primeiros a testar 
as novidades-grátis. Saiba mais: 
http://www.ideas.live.com/programpage.aspx?versionId=5d21c51a-b161-4314-9b0e-4911fb2b2e6d





Mais detalhes sobre a lista de discussão lista