ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

CSV pulando ultima linha, leitura de arquivo [RESOLVIDO]

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
MarcguimDelphi
Novato
Novato


Registrado: Segunda-Feira, 23 de Setembro de 2019
Mensagens: 6

MensagemEnviada: Seg Set 23, 2019 10:45 am    Assunto: CSV pulando ultima linha, leitura de arquivo [RESOLVIDO] Responder com Citação

Bom dia, tenho um codigo que não entendo o pq está pulando a ultima linha do meu arquivo CSV, ele não lê e não mostra no grid.

Código:

var
  ArquivoCSV: TextFile;
  Contador, I: Integer;
  Linha: String;

  // Lê Linha e Monta os valores
  function MontaValor: String;
  var
    ValorMontado: String;
  begin
    ValorMontado := '';
    inc(I);
    While Linha[I] >= ' ' do
    begin
      If Linha[I] = '|' then // vc pode usar qualquer delimitador ... eu
        // estou usando o ";"
        break;
      ValorMontado := ValorMontado + Linha[I];
      inc(I);
    end;
    result := ValorMontado;
  end;

begin
  // Carregando o arquivo ...
  AssignFile(ArquivoCSV, 'C:\Users\Drag\Documents\SYSCLIENTE\Arquivos\yyy.CSV');

  try
    Reset(ArquivoCSV);
    Readln(ArquivoCSV, Linha);
    Contador := 1;

    while not EOF(ArquivoCSV) do
    begin
      if Contador = 1 then // Primeira Linha do arquivo (Pedido);
      else
      begin
        // Demais Linhas (Itens do Pedido )
        I := 0;

        cdsPedido.Append;
        cdsPedidoCOD_CLIENTE.AsString := MontaValor;
        cdsPedidoCLIENTE.AsString := MontaValor;
        cdsPedido.Post;

      end;

      Readln(ArquivoCSV, Linha);
      Contador := Contador + 1;
    end;

  finally
    CloseFile(ArquivoCSV);
  end;

end;


Editado pela última vez por MarcguimDelphi em Ter Out 01, 2019 8:19 am, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Seg Set 23, 2019 8:16 pm    Assunto: Responder com Citação

Boa noite,

Experimente fazer uns testes dessa forma:

Código:
    Reset(ArquivoCSV);
    Contador := 1;

    while not EOF(ArquivoCSV) do
    begin
      Readln(ArquivoCSV, Linha);
      if Contador = 1 then // Primeira Linha do arquivo (Pedido);
      else
      begin
        // Demais Linhas (Itens do Pedido )
        I := 0;

        cdsPedido.Append;
        cdsPedidoCOD_CLIENTE.AsString := MontaValor;
        cdsPedidoCLIENTE.AsString := MontaValor;
        cdsPedido.Post;

      end;

      Contador := Contador + 1;
    end;


Espero que ajude

_________________
Assinatura: https://www.imoveisemexposicao.com.br/imoveis-venda-guarulhos!picanço-residencial-apartamento
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
joemil
Moderador
Moderador


Registrado: Quinta-Feira, 25 de Março de 2004
Mensagens: 9098
Localização: Sinop-MT

MensagemEnviada: Ter Set 24, 2019 8:51 am    Assunto: Responder com Citação

ou tenta com repeat

Código:
begin
  // Carregando o arquivo ...
  AssignFile(ArquivoCSV, 'C:\Users\Drag\Documents\SYSCLIENTE\Arquivos\yyy.CSV');

  try
    Reset(ArquivoCSV);
    // ReadLn(ArquivoCSV, Linha); so use este se tive q pular a primeira linha do arquivo

    repeat
        Readln(ArquivoCSV, Linha);

        cdsPedido.Append;
        cdsPedidoCOD_CLIENTE.AsString := MontaValor;
        cdsPedidoCLIENTE.AsString := MontaValor;
        cdsPedido.Post;

    until Eof(ArquivoCSV);
  finally
    CloseFile(ArquivoCSV);
  end;

end;

_________________
<b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
MarcguimDelphi
Novato
Novato


Registrado: Segunda-Feira, 23 de Setembro de 2019
Mensagens: 6

MensagemEnviada: Ter Out 01, 2019 8:20 am    Assunto: OBRIGADO Responder com Citação

Perfeito meu amigo, resolvido, é isso mesmo.....
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB