Bem, vamos falar inicialmente da escrita de arquivos texto.
Existem algumas palavras reservadas, das quais irei falar de apenas algumas
delas, que serão abordadas neste artigo. Para conhecer todas as palavras
reservadas, relacionadas a manipulação de arquivos, entrem no help do Delphi
com o seguinte tema: "Input and output procedures and functions"
Palavra Reservada
Função
AssignFile
Associa o arquivo manipulado a uma variável do tipo File
Append
Abre um arquivo existente para inserção de novos dados
Eof
Verifica se a posição atual do cursor indica o fim do
arquivo
Write / Rewrite
Escreve valores diversos no arquivo. O rewrite após a
escrita posiciona o cursor na próxima linha do arquivo
Read / Readln
Lê diversos valores no arquivo. O readln após a leitura
posiciona o cursor na próxima linha do arquivo
Bem, irei agora explicitar dois exemplos contendo a
manipulação de arquivos textos. O primeiro deles, ilustrará a inserção de dados
em um arquivo. O segundo irá ilustrar a leitura de dados.
function GravaArquivoLogTransacao(TipoTransacao:
TTipoTransacao): Integer;
const
NomArquivo: String = "LogTransacao.txt";
var
Path:
String;
Arquivo:
TextFile;
begin
Path :=
ExtractFilePath(Application.ExeName);
if not DirectoryExists(Path) then begin
CreateDir(Path);
end;
if not FileExists(Path + NomArquivo)
then begin
FileCreate(Path + NomArquivo);
end;
Try
AssignFile(Arquivo, Path + NomArquivo);
Append(Arquivo);
Write(Arquivo,
FormatFloat("000000", Transacao.TransactionID) + " / " +
FormatFloat("000000", Transacao.GlobalID));
case TipoTransacao of
ttBeginTran: WriteLn(Arquivo, " -
BeginTran: " + DateToStr(Date) + " " + TimeToStr(Time) + "
por usuário: " + IntToStr(UserID));
ttCommit: WriteLn(Arquivo, " -
Commit: " + DateToStr(Date) + " " + TimeToStr(Time) + " por
usuário: " + IntToStr(UserID));
ttRollBack: WriteLn(Arquivo, " -
RollBack: " + DateToStr(Date) + " " + TimeToStr(Time) + "
por usuário: " + IntToStr(UserID));
end;
CloseFile(Arquivo);
Result :=
1;
Except
Result :=
-1;
End;
end;
Na função acima, ilustro a geração de um log de transações
de uma aplicação. Observe que as palavras que realizam a "escrita" no
arquivo estão destacadas.
procedure
LeArquivoLogTransacao(NomeArquivo: String);
var
strFile:
TextFile;
strLine:
String;
begin
AssignFile(strFile, NomeArquivo);
Reset(strFile);
Readln(strFile, strLine);
while not Eof(strFile) do begin
ShowMessage(strLine);
Readln(strFile, strLine);
end;
end;
Já na função acima, realizamos a leitura do arquivo e
lançamos uma mensagem contato o conteúdo lido a cada linha.