Trabalhando com Arquivos TXT
8) Olá pessoal, é um prazer está com vocês aqui.
Bom, eu gostaria de uma ajuda, gostarai de saber como consigo informações sobre como trabalhar com arquivos TXT, estou precisando por exemplo pegar algumas informações e ger arquivos de log, gerar um arquivo txt de acordo com informações digitada em um form, etc.
Quem possuir algum tuturial sobre o assunto ou qualquer artigo que possa me ajudar e agradeço muito.
Obrigado.
[b:a75e6ba4f6]Auridebson [/b:a75e6ba4f6]Sousa :)
Bom, eu gostaria de uma ajuda, gostarai de saber como consigo informações sobre como trabalhar com arquivos TXT, estou precisando por exemplo pegar algumas informações e ger arquivos de log, gerar um arquivo txt de acordo com informações digitada em um form, etc.
Quem possuir algum tuturial sobre o assunto ou qualquer artigo que possa me ajudar e agradeço muito.
Obrigado.
[b:a75e6ba4f6]Auridebson [/b:a75e6ba4f6]Sousa :)
Auridebson
Curtidas 0
Respostas
Dedi
06/05/2003
esta rotina foi enviada por um colega do forum.
talvez possa lhe ajudar.
Uma rotina quase completa para fazer a leitura de um arquivo texto. Esta rotina recebe como parâmetro o nome do arquivo que será lido:
procedure percorreArquivoTexto ( nomeDoArquivo: String );
var arq: TextFile;
linha: String;
begin
AssignFile ( arq, nomeDoArquivo );
Reset ( arq );
ReadLn ( arq, linha );
while not Eof ( arq ) do
begin
{ Processe a linha lida aqui. }
{ Para particionar a linha lida em pedaços, use a função Copy. }
ReadLn ( arq, linha );
end;
CloseFile ( arq );
end;
E também uma rotina quase completa para gravação de um arquivo texto. Esta rotina recebe como parâmetro o nome do arquivo que será gravado e uma tabela (TTable) de onde os dados serão lidos:
procedure gravaArquivoTexto ( nomeDoArquivo: String; tabela: TTable );
var arq: TextFile;
linha: String;
begin
AssignFile ( arq, nomeDoArquivo );
Rewrite ( arq );
tabela.First;
while not tabela.Eof do
begin
Write ( arq, AjustaStr ( tabela.FieldByName ( ´Nome´ ).AsString, 30 ) );
Write ( arq, FormatFloat ( ´00000000.00´, tabela.FieldByName ( ´Salario´ ).AsFloat ) );
WriteLn ( arq );
tabela.Next;
end;
CloseFile ( arq );
end;
Note nesta segunda rotina, a substituição de Reset por Rewrite logo após o AssignFile. Rewrite abre o arquivo para escrita, destruindo tudo que houver lá anteriormente .
Note também o uso de Write e WriteLn para gravar dados no arquivo texto.
Finalmente note o uso de AjustaStr e FormatFloat para garantir que campos string e numericos sejam gravados com um número fixo de caracteres. FormatFloat é uma rotina do próprio Delphi enquanto AjustaStr está definida abaixo:
function AjustaStr ( str: String; tam: Integer ): String;
begin
while Length ( str ) < tam do
str := str + ´ ´;
if Length ( str ) > tam then
str := Copy ( str, 1, tam );
Result := str;
end;
O uso da função AjustaStr é fundamental quando você estiver gravando arquivos texto com registros de tamanho fixo a partir de bases de dados Paradox que usualmente não preenchem campos string com espaços no final.
talvez possa lhe ajudar.
Uma rotina quase completa para fazer a leitura de um arquivo texto. Esta rotina recebe como parâmetro o nome do arquivo que será lido:
procedure percorreArquivoTexto ( nomeDoArquivo: String );
var arq: TextFile;
linha: String;
begin
AssignFile ( arq, nomeDoArquivo );
Reset ( arq );
ReadLn ( arq, linha );
while not Eof ( arq ) do
begin
{ Processe a linha lida aqui. }
{ Para particionar a linha lida em pedaços, use a função Copy. }
ReadLn ( arq, linha );
end;
CloseFile ( arq );
end;
E também uma rotina quase completa para gravação de um arquivo texto. Esta rotina recebe como parâmetro o nome do arquivo que será gravado e uma tabela (TTable) de onde os dados serão lidos:
procedure gravaArquivoTexto ( nomeDoArquivo: String; tabela: TTable );
var arq: TextFile;
linha: String;
begin
AssignFile ( arq, nomeDoArquivo );
Rewrite ( arq );
tabela.First;
while not tabela.Eof do
begin
Write ( arq, AjustaStr ( tabela.FieldByName ( ´Nome´ ).AsString, 30 ) );
Write ( arq, FormatFloat ( ´00000000.00´, tabela.FieldByName ( ´Salario´ ).AsFloat ) );
WriteLn ( arq );
tabela.Next;
end;
CloseFile ( arq );
end;
Note nesta segunda rotina, a substituição de Reset por Rewrite logo após o AssignFile. Rewrite abre o arquivo para escrita, destruindo tudo que houver lá anteriormente .
Note também o uso de Write e WriteLn para gravar dados no arquivo texto.
Finalmente note o uso de AjustaStr e FormatFloat para garantir que campos string e numericos sejam gravados com um número fixo de caracteres. FormatFloat é uma rotina do próprio Delphi enquanto AjustaStr está definida abaixo:
function AjustaStr ( str: String; tam: Integer ): String;
begin
while Length ( str ) < tam do
str := str + ´ ´;
if Length ( str ) > tam then
str := Copy ( str, 1, tam );
Result := str;
end;
O uso da função AjustaStr é fundamental quando você estiver gravando arquivos texto com registros de tamanho fixo a partir de bases de dados Paradox que usualmente não preenchem campos string com espaços no final.
GOSTEI 0
Auridebson
06/05/2003
Ok. Começarei a trabalhar neste projeto.
GOSTEI 0