Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Welder

[Resolvido] Importação de txt / erro OpenDialog

Recommended Posts

Estou importando um txt para fdb usando dbexpress e clientdataset, uso o código:

procedure TfrmPrincipal.BitBtn1Click(Sender: TObject);

var

Txt: Textfile;

Terceiro: string;

begin

BitBtn1.Enabled:= false;

if OpenDialog1.Execute then

begin

dmImportar.cdsTerceiros.Open;

AssignFile(Txt,(OpenDialog1.FileName));//{ NOME do arquivo texto}

Animate1.Visible:= true;

Animate1.Active:= true;

Reset(Txt);

While not Eoln(Txt) do

begin

Readln(Txt,Terceiro);

dmImportar.cdsTerceiros.Insert;

dmImportar.cdsTerceiros.FieldByName('TIPO').Value:= Copy(Terceiro,01,03);

dmImportar.cdsTerceiros.FieldByName('ORDEM').Value:= Copy(Terceiro,04,05);

dmImportar.cdsTerceiros.FieldByName('FILLER1').Value:= StrToInt(Copy(Terceiro,09,02));

dmImportar.cdsTerceiros.FieldByName('PERSONALIDADE').Value:= Copy(Terceiro,11,01);

dmImportar.cdsTerceiros.FieldByName('Tipo_Envio').Value:= StrToInt(Copy(Terceiro,17,01));

dmImportar.cdsTerceiros.FieldByName('Matricula').Value:= Copy(Terceiro,18,10);

dmImportar.cdsTerceiros.FieldByName('Nome').Value:= Copy(Terceiro,28,60);

dmImportar.cdsTerceiros.FieldByName('CPF').Value:= Copy(Terceiro,88,11);

dmImportar.cdsTerceiros.FieldByName('Sexo').Value:= Copy(Terceiro,99,01);

dmImportar.cdsTerceiros.FieldByName('Data_Nascimento').Value:= Copy(Terceiro,100,10);

dmImportar.cdsTerceiros.FieldByName('Data_Admissao').Value:= Copy(Terceiro,110,10);

dmImportar.cdsTerceiros.FieldByName('Tipo_Servidor').Value:= Copy(Terceiro,120,01);

dmImportar.cdsTerceiros.FieldByName('Codigo_Cargo_Funcional').Value:= Copy(Terceiro,121,10);

dmImportar.cdsTerceiros.FieldByName('Codigo_Lotacao').Value:= Copy(Terceiro,131,10);

dmImportar.cdsTerceiros.FieldByName('Salario_Base').Value:= Copy(Terceiro,141,11);

dmImportar.cdsTerceiros.FieldByName('Total_Vencimento').Value:= Copy(Terceiro,152,11);

 

dmImportar.cdsTerceiros.Post;

Label1.Caption:= 'Importando, aguarde... '+ IntToStr(dmImportar.cdsTerceiros.RecordCount);

if dmImportar.cdsTerceiros.ApplyUpdates(0) <> 0 then

dmImportar.cdsTerceiros.CancelUpdates;

end;

CloseFile(Txt);

Label1.Caption:= 'Importação realizado com sucesso...';

BitBtn1.Enabled:= true;

frmPrincipal.Height:= 404;

frmPrincipal.ClientHeight:= 377;

BitBtn2.Kind:= bkClose;

Label1.Caption := 'Foi Importado um total de '+ IntToStr(dmImportar.cdsTerceiros.RecordCount)+' registros com sucesso';

end;

end;

 

e ocorre o erro: cannot open avi, ao selecionar o arquivo na caixa abrir do OpenDialog

 

como corrigir este erro, ou como posso usar DirectoryListBox com FileListBox?

 

Obrigado a todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esta área não se destina a tópicos de dúvidas. Tópico movido.

 

iMasters Fóruns » Programação » Delphi » Artigos, Tutoriais e Matérias (Delphi) >> iMasters Fóruns » Programação » Delphi

Compartilhar este post


Link para o post
Compartilhar em outros sites

resolvido o problema do erro, que por sua vez não era na importação (OpenDialog) e sim no Animate que esqueci de informar a propriedade CammonAvi.

 

Aproveitando o assunto de importação. Como criar e usar algo que faça uma verificação na tabela e se no arquivo de importação constar CPF/CNPF que já exista na tabela o sistema informar que já existe e não fazer a importação desta linha, mas continua com o processo. outra coisa é verificar no arquivo texto se tem mais de um CPF/CNPJ e importar só o primeiro encontrado, ignorando e informando ao ususário os repetidos.

Lembrando que o CPF/CNPJ seria a chave primária.

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.