Existe uma forma mais fácil de fazer a importação desses dados. Dê uma procurada na ajuda do Delphi pela função ExtractStrings(). Ela faz exatamente o que você precisa.
Não lembro qual banco de dados você usa, mas já pensou em criar uma Stored Procedure que faça essa importação? Abraço. Eduardo C. Nicácio Analista de Sistemas ----- Original Message ----- From: itasouza To: delphi-br@yahoogrupos.com.br Sent: Sunday, June 22, 2008 10:49 AM Subject: [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(ProgressBar1.Max); //Buscando pelo Parâmetro codigo, para verificar se já existe na tabela //DM.cdsImportacao.Params.ParamByName('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.cdsImportacaonome.AsString :=Trim(Copy(Linha, 9, 19 )); DM.cdsImportacaocontato.AsString :=Trim(Copy(Linha, 31, 9 )); DM.cdsImportacaoddi.AsString :=Trim(Copy(Linha, 41, 3 )); DM.cdsImportacaoddd.AsString :=Trim(Copy(Linha, 45, 3 )); DM.cdsImportacaofone.AsString :=Trim(Copy(Linha, 49, 8 )); DM.cdsImportacaoddd_2.AsString :=Trim(Copy(Linha, 58, 3 )); DM.cdsImportacaofone_2.AsString :=Trim(Copy(Linha, 62, 8 )); DM.cdsImportacaoddd_3.AsString :=Trim(Copy(Linha, 71, 3 )); DM.cdsImportacaofone_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 ------------------------------------------------------------------------------ No virus found in this incoming message. Checked by AVG. Version: 8.0.100 / Virus Database: 270.4.1/1514 - Release Date: 23/6/2008 07:17 [As partes desta mensagem que não continham texto foram removidas]