Eu fiz... para banco de dados ACESS olha minha rotina ai e em anexo segue a tela de importação procedure ImportaCliente; var Data: TDateTime; begin lblMensagem.Caption := 'Importando dados para a tabela de CLIENTES...'; Application.ProcessMessages; ReadLn(Arquivo, Linha); Repeat // Separa os Dados fValores := Split(Linha, ';'); lblMensagem.Caption := 'Importando dados para a tabela de CLIENTES... (' + fValores[1] + ')'; Application.ProcessMessages; with dmDados.qryDados do begin Close; SQL.Clear; SQL.Add('SELECT fil_CODIGO, cli_CODIGO FROM CLIENTE'); SQL.Add('WHERE fil_CODIGO = '+fValores[0]); SQL.Add('AND cli_CODIGO = '+fValores[1]); Open; if RecordCount > 0 then begin Close; SQL.Clear; SQL.Add('UPDATE CLIENTE SET'); SQL.Add('cli_NOME = '+QuotedStr(Trim(fValores[2]))+','); SQL.Add('ven_CODIGO = '+QuotedStr(Trim(fValores[3]))+','); if IsValidDate(fValores[4]) then SQL.Add('cli_ANIVERSARIO = '+QuotedStr(Trim(fValores[4]))+',') else SQL.Add('cli_ANIVERSARIO = Null,'); if IsValidDate(fValores[5]) then SQL.Add('cli_DATACONTATO = '+QuotedStr(Trim(fValores[5]))+',') else SQL.Add('cli_DATACONTATO = Null,'); SQL.Add('cli_TIPO = '+Trim(fValores[6])+','); SQL.Add('cli_CONJUGE = '+QuotedStr(Trim(fValores[7]))+','); if IsValidDate(fValores[8]) then SQL.Add('cli_ANIVERCONJUGE = '+QuotedStr(Trim(fValores[8]))+',') else SQL.Add('cli_ANIVERCONJUGE = Null,'); SQL.Add('cli_ENDERECO = '+QuotedStr(Trim(fValores[9]))+','); SQL.Add('cli_BAIRRO = '+QuotedStr(Trim(fValores[10]))+','); SQL.Add('cli_CIDADE = '+QuotedStr(Trim(fValores[11]))+','); SQL.Add('cli_ESTADO = '+QuotedStr(Trim(fValores[12]))+','); SQL.Add('cli_CEP = '+QuotedStr(Trim(fValores[13]))+','); SQL.Add('cli_TELEFONE = '+QuotedStr(Trim(fValores[14]))+','); SQL.Add('cli_CELULAR = '+QuotedStr(Trim(fValores[15]))+','); SQL.Add('cli_EMAIL = '+QuotedStr(Trim(fValores[16]))+','); if Trim(fValores[17]) = '' then fValores[17] := '0'; SQL.Add('cli_FAIXAETARIA = '+Trim(fValores[17])+','); SQL.Add('cli_SEXO = '+QuotedStr(Trim(fValores[18]))+','); SQL.Add('cli_ESTADOCIVIL = '+QuotedStr(Trim(fValores[19]))+','); SQL.Add('cli_MANEQUIM = '+QuotedStr(Trim(fValores[20]))+','); SQL.Add('cli_OBSERVACAO = '+QuotedStr(Trim(fValores[21]))); SQL.Add('WHERE fil_CODIGO = '+fValores[0]); SQL.Add('AND cli_CODIGO = '+fValores[1]); ExecSQL; end end; ReadLn(Arquivo, Linha); Application.ProcessMessages; until (Pos('********************',Linha) > 0); pgbProcessando.StepBy(1); end;
Isso ai importa um arquivo em txt blz Att. Adilson ----- Mensagem original ---- De: itasouza <[EMAIL PROTECTED]> Para: delphi-br@yahoogrupos.com.br Enviadas: Terça-feira, 24 de Junho de 2008 13:16:51 Assunto: [delphi-br] Verificar espaço vazio no texto importado Amigos da lista... Estou aqui mais uma vez com o mesmo problema já alterei o código, varias vezes já fiz muitas pesquisar para tentar entender e fazer funcionar esta importação de arquivo, alguns aqui na lista já me ajudou passando informações que foram útil mais estou realmente precisando de uma ajuda. Tenho o seguinte código, que ao pega o nome : DM.cdsImportacaonom e.AsString O mesmo esta pegando o `' vazio que tem entre o nome passando como se fosse `;' o restante do nome vai para outro campo e ai gera erro. Ficaria muito grato se alguém que faz fez este tipo de função pudesse ajuda!! procedure TfrmImportacao. btnImportaClick( Sender: TObject); var fArq: TextFile; //Variável do Tipo Arquivo de Texto Caminho: string; //Variável que armazenará o caminho Linha: string; //Variável que vai armazenar cada linha mTexto: TStringList; //Utilizada para contar as linhas a importar i: integer; //variável utilizada no contador de linhas Importadas sl_linha:TStringLis t; begin Caminho := editArquivo. Text; //Variavel vai receber os dados do edit AssignFile(fArq, Caminho); ReSet(fArq); mTexto := TStringList. Create; sl_linha:=TStringLi st.create; sl_linha.Delimiter: =';'; try mTexto.LoadFromFile (Caminho) ; ProgressBar1. Max := mTexto.Count - 1; i := 0; finally mTexto.Free; end; 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 sl_linha.DelimitedT ext := linha; frmImportacao. Caption := 'Lendo Linha: ' + IntToStr(i) + ' de: ' + IntToStr(ProgressBa r1.Max); 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. Append; // mesmo ezistindo ele inseri //Aqui os campos recebem as linhas lidas DM.cdsImportacaocod _integracao. AsString :=sl_linha[0] ; //DM.cdsImportacaon ome.AsString :=sl_linha[1] ; DM.cdsImportacaocon tato.AsString :=sl_linha[2] ; DM.cdsImportacaoddi .AsString :=sl_linha[3] ; DM.cdsImportacaoddd .AsString :=sl_linha[4] ; DM.cdsImportacaofon e.AsString :=sl_linha[5] ; DM.cdsImportacaoddd _2.AsString :=sl_linha[6] ; DM.cdsImportacaofon e_2.AsString :=sl_linha[7] ; DM.cdsImportacaoddd _3.AsString :=sl_linha[8] ; DM.cdsImportacaofon e_3.AsString :=sl_linha[9] ; 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; end; MessageBeep( 65); ShowMessage( 'Processo Concluído Com êxito!!!'); end; 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]