Ir para conteúdo

POWERED BY:

Arquivado

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

Renanbg

[Resolvido] Leitura de arquivo

Recommended Posts

Olá pessoal

 

preciso ler um arquivo usando delphi 6, pode ser um txt..ele terá apenas 1 coluna e 5 linhas

 

o processo será assim

 

ao abrir o sistema eu pretendo colocar no view source uma rotina para verificar o serial do HD por exemplo e armazenar esse serial em uma variavel x

 

depois preciso ler o conteudo da 3ª linha do arquivo txt e comparar com a variavel x para ver se são iguais

 

alguma sugestão?

 

grato

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui isso até agora

 

Var
f:TextFile;
num, linha:String;
begin
  num:= Form1.edit1.Text;
  AssignFile(f,'c:\carta.txt');
  Reset(f); 
  Read(f,linha);
  if linha = num then
  showmessage('é igual')
  else
  showmessage('é diferente');
  Closefile(f);
end;

o problema é que ele da erro de read of adress na linha num:= Form1.edit1.Text;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro, este Form1 está na lista de uses da sua unit? Ele já foi criado para poder ser acessado?? Há algum valor nele na hora que executa?

 

Segundo... dá uma lida neste artigo que está no site da imasters e tente o adaptar ao seu código.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro, este Form1 está na lista de uses da sua unit? Ele já foi criado para poder ser acessado?? Há algum valor nele na hora que executa?

 

Segundo... dá uma lida neste artigo que está no site da imasters e tente o adaptar ao seu código.

 

[]'s

Olá,

 

olhei esse topico que você indicou e a rotina de leitura não le a segunda linha do arquivo.

 

ex:

 

tenho um arquivo com apenas 2 linhas e com o seguinte conteudo nelas

 

linha 1 - renanbg

linha 2 - renan

 

então essa rotina le apenas o renanbg e cai fora...a unica forma dela ler a segunda linha seria se eu colocasse uma terceira linha

 

tem como resolver isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como está o código que você montou?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como está o código que você montou?

olá, esta assim

 

procedure TForm1.Button1Click(Sender: TObject);
var
  f: TextFile;
  linha: String;
begin
  AssignFile(f,'c:\carta.txt');
  Reset(f);
  Readln(f,linha);
  while not Eof(f) do begin
	ShowMessage(linha);
	Readln(f, linha);
  end;

end;

to indo almoçar que a fome bateu, logo que voltar continuo vendo isso com você

 

obrigado pela ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, o problema em questão é que você não entendeu a lógica do código que está demonstrada no arquivo. Um teste de mesa já resolveria, mas vou explicar o que acontece.... seu arquivo tem dois registros certo?

 

No código que você postou, que é o mesmo do artigo, o programa irá ler o primeiro registro e testar se chegou no fim do arquivo... se não chegou, mostra o registro e lê o próximo e executa o teste novamente... o que acontecerá é que o próximo é o registro que indica o fim do arquivo, ou seja, ele sai do while neste momento sem mostrar.

 

Há dois modos de resolver isso. O primeiro modo é pegar o seu código e por um showmessage logo após o while... ele vai te mostrar que a variável está posicionada exatamente na última linha do arquivo ao sair do mesmo.

 

procedure TForm1.Button1Click(Sender: TObject);
var
  f: TextFile;
  linha: String;
begin
  AssignFile(f,'c:\carta.txt');
  Reset(f);
  Readln(f,linha);
  while not Eof(f) do begin
	ShowMessage(linha);
	Readln(f, linha);
  end;
  ShowMessage(linha);
end;

A segunda forma é mudar a forma como vai ler os dados...

 

procedure TForm1.Button1Click(Sender: TObject);
var
  f: TextFile;
  linha: String;
begin
  AssignFile(f,'c:\carta.txt');
  Reset(f);
//  Readln(f,linha);
  while not Eof(f) do begin
	Readln(f, linha);
	ShowMessage(linha);
  end;

end;

Teste as duas e veja qual fica melhor para você...

 

[]'s

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.