Como ler arquivos textos com separadores de coluna ;
07/07/2004
0
Gostaria de fazer uma aplicação que importe dados oriundos de um arquivo texto com separadores de campo.
Ex.: nome;idade;sexo;
Origado!
Edvaldo Silva
Edvaldosilva
Posts
07/07/2004
Gandalf.nho
[url]http://delphi.icm.edu.pl/[/url]
07/07/2004
Bferreira
Eu tive q fazer a mesma coisa, mas porém alem de ler os dados de um arquivo texto ele é gravado em uma tabela no banco de dados se for do seu interesse posso postar o fonte da minha aplicação para vc dar uma olhada.
08/07/2004
Bferreira
unit FCarregaDados; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, DB, DBTables, ExtCtrls, Buttons, ComCtrls; type TForm1 = class(TForm) OpenDialog1: TOpenDialog; EdtCaminho: TEdit; Query1: TQuery; Database1: TDatabase; Button2: TButton; Panel1: TPanel; Panel2: TPanel; ListBox1: TListBox; Button1: TButton; ProgressBar1: TProgressBar; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var caminho:string; begin OpenDialog1.Execute; Caminho:=OpenDialog1.FileName; if OpenDialog1.FileName <>´´ Then Begin EdtCaminho.text:=Caminho; end; end; procedure TForm1.Button2Click(Sender: TObject); var Texto,Linha : TStringList; i,j,tam:integer; SQL,usu,nome,senha,turma,nasc:string; begin if EdtCaminho.text = ´´ then begin showmessage(´Localize o arquivo primeiro´); Exit; end; try Texto := TStringList.Create; Texto.LoadFromFile(EdtCaminho.text); except showmessage(´O Sistema não pode econtrar o arquivo especificado´); Texto.Free; Exit; end; Linha := TStringList.Create; Randomize; ProgressBar1.Max:= Texto.Count; ProgressBar1.Visible:=true; for i:=0 to Texto.Count - 1 do begin Linha.Delimiter:=´;´; Linha.DelimitedText:=Texto[i]; usu:=Linha.Strings[0]; Delete(usu,1,2); nome:=Linha.Strings[1]; while length(senha)<6 do senha:=intToStr(Random(999999)); turma:=Linha.Strings[2]; nasc:=Linha.Strings[3]; Query1.SQL.Clear; SQL:=´INSERT INTO TBALUNO(USUARIO,NOME,SENHA,DATANASC,TURMA) VALUES(:Usuario,:Nome,:Senha,:Nasc,:Turma)´; try Query1.SQL.Add(SQL); Query1.ParamByName(´Usuario´).AsInteger := strtoint(usu); Query1.ParamByName(´Nome´).AsString := nome; Query1.ParamByName(´Senha´).AsString := senha; Query1.ParamByName(´Nasc´).AsDateTime := StrToDateTime(nasc); Query1.ParamByName(´Turma´).AsString := turma; Query1.ExecSQL; except ShowMessage(´Erro!!! A base de dados não está no padrão correto!´); Texto.Free; Linha.Free; Exit; end; ListBox1.AddItem(Texto.Strings[i],Self); ProgressBar1.Position:=i; senha:=´´; end; ProgressBar1.Visible:=false; Texto.Free; Linha.Free; ShowMessage(´Os Dados Foram inseridos no banco com sucesso!!!´); end; end.
Espero q ajude!
t+
Clique aqui para fazer login e interagir na Comunidade :)