Importar arquivo TXT?
Olá pessoal!
Estou querendo importar um arquivo txt com a seguinte estrutura:
Nome
End
Cidade
Estado
CEP
linha em branco
linha em branco
linha em branco
Nome
End
Cidade
Estado
CEP
linha em branco
linha em branco
linha em branco
como faço para pegar esses dados e gravar por ex. a linha 1, linha 9, linha 17 e assim por diante... para o campo nome da minha tb?
Estou querendo importar um arquivo txt com a seguinte estrutura:
Nome
End
Cidade
Estado
CEP
linha em branco
linha em branco
linha em branco
Nome
End
Cidade
Estado
CEP
linha em branco
linha em branco
linha em branco
como faço para pegar esses dados e gravar por ex. a linha 1, linha 9, linha 17 e assim por diante... para o campo nome da minha tb?
E_marcello
Curtidas 0
Respostas
E_marcello
30/04/2004
Já tentei pesquisar no forum e nao achei nada igual!
Será que algém teria alguma dica?
Será que algém teria alguma dica?
GOSTEI 0
Beppe
30/04/2004
var Dados: TextFile; Nome, End, Cidade, Estado, CEP: String; begin AssignFile(Dados, ´C:\dados.txt´); Reset(Dados); try while not Eof(Dados) do begin Readln(Dados, Nome); Readln(Dados, End); Readln(Dados, Cidade); Readln(Dados, Estado); Readln(Dados, CEP); Readln(Dados); Readln(Dados); Readln(Dados); // faz algo com as variáveis // ex: Tabela.Adiciona(Nome); end; finally CloseFile(Dados); end; end;
GOSTEI 0
E_marcello
30/04/2004
Acho que nao fui claro!
O arquivo está assim:
JOAO
RUAXXXX
CENTRO
RECIFE
53000000
Linha em branco
Linha em branco
Linha em branco
JOSE
AV. YYYYYY
CENTRO
50000000
Linha em branco
Linha em branco
Linha em branco
Obrigado!
O arquivo está assim:
JOAO
RUAXXXX
CENTRO
RECIFE
53000000
Linha em branco
Linha em branco
Linha em branco
JOSE
AV. YYYYYY
CENTRO
50000000
Linha em branco
Linha em branco
Linha em branco
Obrigado!
GOSTEI 0
Aroldo Zanela
30/04/2004
Colega,
Existem várias formas para se implementar isto, eu fiz da seguinte forma:
Espelho do arquivo (arquivo.txt) em c:\temp:
Existem várias formas para se implementar isto, eu fiz da seguinte forma:
procedure TForm1.Button1Click(Sender: TObject); type TRegistro = Record Nome: String; Endereco: String; Cidade: String; Estado: String; CEP: String; end; var Arquivo: TStringList; Registro: TRegistro; Laco, Linhas, Campos: Integer; begin Arquivo := TStringList.Create; Arquivo.LoadFromFile(´c:\temp\arquivo.txt´); Linhas := Arquivo.Count-1; Campos:= 0; For Laco := 0 to Linhas do begin if Campos < 7 then begin Case Campos of 0: Registro.Nome:= Arquivo.Strings[Laco]; 1: Registro.Endereco := Arquivo.Strings[Laco]; 2: Registro.Cidade:= Arquivo.Strings[Laco]; 3: Registro.Estado:= Arquivo.Strings[Laco]; 4: Registro.CEP:= Arquivo.Strings[Laco]; end; Inc(Campos) end else begin ShowMessage(Registro.Nome); // Faça algo com o registro Campos := 0; end; end; Arquivo.Free; end;
Espelho do arquivo (arquivo.txt) em c:\temp:
Aroldo End Cidade Estado CEP linha em branco linha em branco linha em branco Zanela End Cidade Estado CEP linha em branco linha em branco linha em branco
GOSTEI 0
Beppe
30/04/2004
Acho que nao fui claro!
Claro vc foi, eu acho é q vc naum testou...
Compilou? Deu erro? Naum funcionou?
GOSTEI 0
Aroldo Zanela
30/04/2004
[quote:8b8c9eac12=´e_marcello´]Acho que nao fui claro!
Claro vc foi, eu acho é q vc naum testou...
Compilou? Deu erro? Naum funcionou?[/quote:8b8c9eac12]
Beppe,
Ele não testou, pois teria notado o erro na declaração da variável end (endereço): [Error] Unit1.pas(29): Identifier expected but ´END´ found
O único problema no seu código é que ficou muito simples. :lol: :D
GOSTEI 0
E_marcello
30/04/2004
Prezados amigos,
Antecipadamente gostaria de agradecer as respostas, em relação ao código de Beppe eu testei só que ao invés de declarar a variável como End eu declarei como ende. Mas depois com a resposta do Aroldo fiz exatamente como está abaixo:
O resultado de ambos os códigos é que só grava um registro onde no lugar do nome fica a cidade e no endereco o CEP. Sei que estou errando em algum lugar será que vocês poderim ajudar?
Antecipadamente gostaria de agradecer as respostas, em relação ao código de Beppe eu testei só que ao invés de declarar a variável como End eu declarei como ende. Mas depois com a resposta do Aroldo fiz exatamente como está abaixo:
procedure TForm1.Button1Click(Sender: TObject); type TRegistro = Record Nome: String; Endereco: String; Cidade: String; Estado: String; CEP: String; end; var Arquivo: TStringList; Registro: TRegistro; Laco, Linhas, Campos: Integer; begin Arquivo := TStringList.Create; Arquivo.LoadFromFile(´c:\temp\medicos.txt´); Linhas := Arquivo.Count-1; Campos := 0; For Laco := 0 to Linhas do begin if Campos < 7 then begin Case Campos of 0: Registro.Nome := Arquivo.Strings[Laco]; 1: Registro.Endereco := Arquivo.Strings[Laco]; 2: Registro.Cidade := Arquivo.Strings[Laco]; 3: Registro.Estado := Arquivo.Strings[Laco]; 4: Registro.CEP := Arquivo.Strings[Laco]; end; Inc(Campos) end else begin table1.Edit; table1nome.AsString:=registro.Nome; table1ende.AsString:=Registro.Endereco; table1cidade.AsString:=Registro.Cidade; table1estado.AsString:=Registro.Estado; table1estado.AsString:=Registro.CEP; table1.Post; //ShowMessage(Registro.Nome); // Faça algo com o registro Campos := 0; end; end; Arquivo.Free; end;
O resultado de ambos os códigos é que só grava um registro onde no lugar do nome fica a cidade e no endereco o CEP. Sei que estou errando em algum lugar será que vocês poderim ajudar?
GOSTEI 0
Beppe
30/04/2004
Perceba q vc disse q o formato era:
mas o arquivo-exemplo está irregular, naum tem cidade, tem bairro, etc...
o problema q só grava um registro, é q vc deve adicionar novos registros, seus comandos estão modificando sempre o msm...
Nome
End
Cidade
Estado
CEP
mas o arquivo-exemplo está irregular, naum tem cidade, tem bairro, etc...
o problema q só grava um registro, é q vc deve adicionar novos registros, seus comandos estão modificando sempre o msm...
GOSTEI 0