Essa parte vai ficar assim:
DM.cdsImportacao.Post; 
DM.cdsImportacao.Close; 
Inc(i);
ProgressBar1. Position := ProgressBar1. Position + 1;
Next;
end;
DM.cdsImportacao. ApplyUpdates( 0); //Aplica as atualizações em memória no 
ShowMessage('Processo Concluído Com êxito!!!');
Close;
end;

 Emerson Martins da Silva
Analista de Sistemas Júnior
msn:[EMAIL PROTECTED]
EMS INFORMATICA - Desenvolvimento e Suporte de Sistemas



----- Mensagem original ----
De: itasouza <[EMAIL PROTECTED]>
Para: delphi-br@yahoogrupos.com.br
Enviadas: Domingo, 22 de Junho de 2008 10:49:11
Assunto: [delphi-br] Ajuda com Importação de dados em TXT


Importação e exportação de dados em TXT 

Bom dia..

Conseguir contar os espaços deu certo a inserção dos dados, mais só 
gravou a primeira linha, debugei o código e não encontrei problemas, 
verifiquei que estava usando o comando "Next;" não gerava erro mais 
só gravava a primeira linha, substituir por "Readln" e agora gera o 
erro:

Project SysSam.exe raised exception class EInOutError with
message 'I/O error 6'. Process stopped. Use Step or Run to continue.

Como usar o comando POS ou Readln, para que grave todas as linhas?

Layout de importação:
3351781;MARIA DA PENHA 
CAUS;69601640797; 055;021;46671479 ;015;46687415; 013;48879253;
3351781;MARIA DA PENHA 
CAUS;69601640797; 055;021;46671479 ;015;46687415; 013;48879253;
3351781;MARIA DA PENHA 
CAUS;69601640797; 055;021;46671479 ;015;46687415; 013;48879253;
3351781;MARIA DA PENHA 
CAUS;69601640797; 055;021;46671479 ;015;46687415; 013;48879253;

Código com os espaços corretos:

while not Eof(fArq) do //Enquanto não chegar ao fim do arquivo
begin
Application. ProcessMessages;
Readln(farq, linha); //Lê a linha e posiciona o cursor na próxima
frmImportacao. Caption := 'Lendo Linha: ' + IntToStr(i) + ' de: ' 
+ IntToStr(ProgressBa r1.Max);
//Buscando pelo Parâmetro codigo, para verificar se já existe na 
tabela
//DM.cdsImportacao. Params.ParamByNa me('codigo' ).asString := Trim
(Copy(Linha, 1, 8));
DM.cdsImportacao. Open; //Abre o CDS
//
if DM.cdsImportacao. IsEmpty then //Se Não existir o registro
DM.cdsImportacao. Append //Insira os dados da linha atual
else //Senão, se o registro já existir
DM.cdsImportacao. Edit; //Coloca em modo de edição para 
atualizar os campos
//Aqui os campos recebem as linhas lidas
DM.cdsImportacaocod _integracao. AsString :=Trim(Copy( Linha, 
1, 7 ));
DM.cdsImportacaonom e.AsString :=Trim(Copy( Linha, 
9, 19 ));
DM.cdsImportacaocon tato.AsString :=Trim(Copy( Linha, 
31, 9 ));
DM.cdsImportacaoddi .AsString :=Trim(Copy( Linha, 
41, 3 ));
DM.cdsImportacaoddd .AsString :=Trim(Copy( Linha, 
45, 3 ));
DM.cdsImportacaofon e.AsString :=Trim(Copy( Linha, 
49, 8 ));
DM.cdsImportacaoddd _2.AsString :=Trim(Copy( Linha, 
58, 3 ));
DM.cdsImportacaofon e_2.AsString :=Trim(Copy( Linha, 
62, 8 ));
DM.cdsImportacaoddd _3.AsString :=Trim(Copy( Linha, 
71, 3 ));
DM.cdsImportacaofon e_3.AsString :=Trim(Copy( Linha, 
75, 8 ));
DM.cdsImportacao. Post; //Salve o registro em memória
DM.cdsImportacao. ApplyUpdates( 0); //Aplica as atualizações em 
memória no banco
DM.cdsImportacao. Close; //Fecha o CDS }
Inc(i);
ProgressBar1. Position := ProgressBar1. Position + 1;
Next;
end;

Agradeço a ajuda

 


      Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua 
cara @ymail.com ou @rocketmail.com.
http://br.new.mail.yahoo.com/addresses

[As partes desta mensagem que não continham texto foram removidas]

Responder a