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]

Responder a