Como manipular Arquivo Texto (*.txt) ???

Delphi

11/12/2003

Como criar um arquivo txt?
E como adicionar linhas dentro do arquivo?


Neoramza

Neoramza

Curtidas 0

Respostas

Deus

Deus

11/12/2003

Você deve usar duas variáveis: Uma, do tipo [i:0a3d4f6258]String[/i:0a3d4f6258], que vai ser o caminho do arquivo, e outra do tipo [i:0a3d4f6258]TextFile[/i:0a3d4f6258], que é um tipo de dado que representa arquivos de texto no delphi. Aí, para associar a essa variável [i:0a3d4f6258]TextFile[/i:0a3d4f6258] o seu arquivo texto é só fazer o seguinte:

AssignFile(varTextFile, varString);


Por exemplo, suponha que a sua variável [i:0a3d4f6258]varString[/i:0a3d4f6258] contenha o valor [i:0a3d4f6258]´C:\Teste.txt´[/i:0a3d4f6258]. Então, ao usar esse comando, você vai associar [i:0a3d4f6258]varTextFile[/i:0a3d4f6258] a [i:0a3d4f6258]´C:\Teste.txt´[/i:0a3d4f6258]. Agora, para usar o arquivo, você deve proceder da seguinte forma:

* Se você quiser apenas ler o arquivo, dê um comand [i:0a3d4f6258]Reset[/i:0a3d4f6258], para que o arquivo volte ao início, e então leia o arquivo usando [i:0a3d4f6258]ReadLn[/i:0a3d4f6258]. Cada vez que você usar esse comando, ele vai ler uma nova linha. Para ler o arquivo todo, você faria assim:

Reset(varTextFile);
while not Eof(varTextFile) do
begin
  ReadLn(varTextFile, varOutraString);
  if (varOutraString = ´teste´) then
    ShowMessage(´No texto, existe a linha "teste" ´);
end;


Note que a variável [i:0a3d4f6258]varOutraString[/i:0a3d4f6258] vai guardar o valor lido na linha. Cada vez que ele lê, apaga o valor anterior. Esse exemplo apenas mostra o uso de [i:0a3d4f6258]Eof[/i:0a3d4f6258] (fim-de-arquivo) e [i:0a3d4f6258]ReadLn[/i:0a3d4f6258].

* Se você quiser escrever no arquivo, dê um comando [i:0a3d4f6258]ReWrite[/i:0a3d4f6258] e, em seguida, insira uma linha por vez com o comando [i:0a3d4f6258]WriteLn[/i:0a3d4f6258], da seguinte forma:

ReWrite(varTextFile);
for i := 1 to 10 do
  WriteLn(varTextFile, ´Essa é a linha número ´ + IntToStr(i));


Esse exemplo irá escrever 10 linhas no texto.

* Finalmente, se você quer escrever no texto, mas não quer resetá-lo, ou seja, quer continuar de onde parou, use [i:0a3d4f6258]Append[/i:0a3d4f6258] para adicionar ao fim do arquivo. Por exemplo:

Append(varTextFile);
for i := 1 to 10 do
  WriteLn(varTextFile, ´Adicionei mais ´ + IntToStr(i) + ´ linhas.´);


Depois que você terminar de usar o arquivo, então dê um

CloseFile(varTextFile);


E tá tudo novo. :) Espero que tenha ajudado!! Abraços, dEUS.


GOSTEI 0
Neoramza

Neoramza

11/12/2003

Valeu muito, cara! Isso era exatamente o que eu prescisava. Mas eu ainda tenho duas dúvidas:

1. Como fazer para saber se um arquivo já existe?

2. Como fazer para criar um arquivo texto vazio?

Valeu Pessoal...!!! :wink:


GOSTEI 0
Deus

Deus

11/12/2003

1) Para saber se um arquivo já existe, use a função [i:36ea6e8112]FileExists[/i:36ea6e8112], que retornará [b:36ea6e8112]True[/b:36ea6e8112] caso o arquivo exista, e [b:36ea6e8112]False[/b:36ea6e8112] caso contrário. Desta forma:

if FileExistes(varNomeArquivo) then
  ShowMessage(´O arquivo ´ + varNomeArquivo + ´ já existe!´);


2) A função [i:36ea6e8112]ReWrite[/i:36ea6e8112] serve tanto para arquivos que já existiam serem reescritos quanto para arquivos novos serem criados. :)

Espero que tenha tirado todas as suas dúvidas! Abraços, dEUS.


GOSTEI 0
Neoramza

Neoramza

11/12/2003

Ajudou sim cara! :D
Valeu mesmo!


GOSTEI 0
POSTAR