Fórum Importar txt para bd(não consigo importar uma linha). #323394
14/06/2006
0
É o seguinte, to precisando copiar para meu bd um arquivo de texto neste formato.
[img:3acb30ae82]http://br.geocities.com/jackellalves/imagem1.JPG[/img:3acb30ae82]
Fiz o código assim
AssignFile(Arquivo, LocalNome); Reset(Arquivo); while not Eof(Arquivo) do Readln(Arquivo, LinhaDados); if Copy(LinhaDados, 17, 1)=´1´then begin DmGeral.Qr_Funcionarios.Append; DmGeral.Qr_Funcionarios.FieldByName(´Cod´).AsString:= Copy(LinhaDados,17,2); DmGeral.Qr_Funcionarios.FieldByName(´Nome´).AsString:= Copy(LinhaDados,23,25); DmGeral.Qr_Funcionarios.FieldByName(´Setor´).AsString:= Copy(LinhaDados,40,40); DmGeral.Qr_Funcionarios.FieldByName(´Endereco´).AsString:= Copy(LinhaDados,46,55); DmGeral.Qr_Funcionarios.Post;
A minha tabela ta assim Cod, Nome, Setor, Endereco.
Neste caso eu iria descartar as primeiras linhas.
Eu consegui importar (cod, nome e endereço), mais não tó conseguindo exibir no dbgrid o ´Setor´ pois ele ta numa linha que não tem código.
Uso Delphi 7 + Firebird 2.0
Desde já agradeço.
Vitoreduardo
Curtir tópico
+ 0Posts
15/06/2006
Paullsoftware
ele deve ter uma estrutura melhorada para que vc possa tratá-lo corretamente na hora da importação...
se é vc quem tá fazendo ele, procure deixá-lo mais ou menos assim:
12332;Paulo Ricardo;Rua da Salvade;87090234;18/08/1981
454;Ricardo Nunes;Rua da Salvade;87090234;18/08/1981
11544;Andréa Alves;Rua da Salvade;87090234;18/08/1981
3511;Marcos Azevedo;Rua da Salvade;87090234;18/08/1981
38574;Fábio Tavares;Rua da Salvade;87090234;18/08/1981
45;Marcio Neves;Rua da Salvade;87090234;18/08/1981
assim fica mais fácil de fazer a leitura...
Gostei + 0
15/06/2006
André Bianchi
nao entendi quando vc disse ´pois ele ta numa linha que não tem código.´
/******************************************/
Voce pode encontrar hoje 900 dicas, 39 downloads,
18 artigos, e outras ajudas em:
[url]www.dicasdelphi.xpg.com.br[/url]
/******************************************/
Gostei + 0
15/06/2006
Adriano Santos
O [b:66816c89d7]paullsoftware[/b:66816c89d7] e o [b:66816c89d7]bianchi[/b:66816c89d7] tem razão, se você mesmo que está desenvolvendo o arquivo texto pense no formato dele. 1 linha para cada registro. É mais fácil. Melhorando ainda mais o formato sugerido pelo Paulo eu faria assim:
[quote:66816c89d7=´Arquivo texto´]
12332;Paulo Ricardo ;Rua da Salvade;87090234;18/08/1981
00454;Ricardo Nunes ;Rua da Salvade;87090234;18/08/1981
11544;Andréa Alves ;Rua da Salvade;87090234;18/08/1981
03511;Marcos Azevedo ;Rua da Salvade;87090234;18/08/1981
38574;Fábio Tavares ;Rua da Salvade;87090234;18/08/1981
00045;Marcio Neves ;Rua da Salvade;87090234;18/08/1981
[/quote:66816c89d7]
Note que onde existem números coloquei zeros a esquerda. Isso facilita muito, pois basta fazer uma conversão para que o valor se torne válido no banco de dados. Ex:
[quote:66816c89d7=´Exemplo de cópia´]
DmGeral.Qr_Funcionarios.FieldByName(´Cod´).AsInteger:= StrToInt(Copy(LinhaDados, 1, 5));
[/quote:66816c89d7]
Agora, se não é você que está gerando este arquivo texto vai ficar complicado. Experimente usar o Debug do Delphi e descobrir o que ele está copiando na coluna 40.
Gostei + 0
15/06/2006
Vitoreduardo
paullsoftware
Não sou eu quem ta fazendo os arquivos não, eu recebo esses arquivos ou por disquete ou por email.
Alguns arquivos podem ter até mais linhas umas 200, por exemplo.
Mais a formatação é sempre a mesma com o texto centralizado no bloco de notas.
E as vezes eu receber até uns 20 arquivos desse tipo.
Teria como formatar esse texto pelo Delphi, eu pensei em abri os arquivos num memo e então eu faria e edição e depois jogaria no banco.
Mais o problema é que se for muitos arquivos com muitas linhas, ai complica um pouco.
Gostei + 0
15/06/2006
Paullsoftware
Acho que vc deveria falar com o programador que faz a exportação para ele formatar de uma forma melhor esse arquivo que vc está tendo dificuldades para processar as informações, pois, até mesmo os banco quando mandam as informações eles mandam elas bem formatadas...
se almenos existisse um separador de conteúdo, um Ponto e virgula ou Traço ou qq coisa que identificasse o inicio e final de cada dado do arquivo, assim fica complicado...
Gostei + 0
15/06/2006
Vitoreduardo
Vou fazer isso mesmo paullsoftware.
Vai facilitar muito a minha vida.
Obrigado.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)