Ler arquivos textos. Como?
11/08/2004
0
Num diretório, existem vários arquivos e eu preciso deletar, digamos 5 que comecem com i e p, por exemplo, num total de 50 arquivos. Como fazer um while, por exemplo ou repeat, para ir deletando nesta condição até que chegue ao final? Não sei deu para entender. Em realidade, são tabelas geradas pelo MySql, o qual algumas delas devem ser deletadas, pois elas não podem ser atualizadas(sobreescrita) no cliente. Hoje é feito um procedimento manual, e a minha função é automatizar isso, ou seja, que aplicação faça isso sozinha. Se não fui claro, poste a dúvida que troco em miúdos.
Paulo
Posts
11/08/2004
Motta
use assignfile , readln closefile - veja mais detalhes no help
use TStrings, método LoadfromFile e leia cada linha como um indice da TStrings.
11/08/2004
Reginaldo174
TextFile é um tipo de dado pré-definido no Delphi e corresponde ao tipo Text do Turbo Pascal e do Object Pascal.
Inicialmente para acessar um arquivo de texto, você precisa definir uma variável tipo TextFile, no local que você achar mais apropriado, da seguinte forma:
var arq: TextFile;
Vamos precisar também de uma variável tipo string para armazenar cada linha lida do arquivo:
var linha: String;
Antes de se iniciar a leitura do arquivo, precisamos associar a variavel TextFile com um arquivo fisicamente armazenado no disco:
AssignFile ( arq, ´C:\AUTOEXEC.BAT´ );
Reset ( arq );
A rotina AssignFile faz a associação enquanto Reset abre efetivamente o arquivo para leitura. AssignFile corresponde à Assign do Turbo Pascal. Em seguida é necessário fazer uma leitura ao arquivo, para isto utilizaremos a procedure ReadLn:
ReadLn ( arq, linha );
O comando acima lê apenas uma linha de cada vez, assim precisamos de um loop para efetuar várias leituras até que o arquivo acabe. Para verificar o fim do arquivo, utilizaremos a função Eof:
while not Eof ( arq ) do
Agora 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.
11/08/2004
Paulo
[DATABASE]
host=127.0.0.1
[LOCAL]
#DIRETORIO DESTINO
Dir=C:\Arquivos de programas\Infoconsult\mysql\bin\downloads\
[INTERNET]
SITE DE ORIGEM
Dir=http://www.infoconsult.com.br/atu/
[TECAUTO]
AUTOCLOSE=1
DONTEXCLUDE=0
BUSCA=0
ATUTEC=0
[TEC]
Data em que a ultima atualização foi feita da Internet
Download=11/08/2004 [color=red:cdf485be64]//Trocar esta data[/color:cdf485be64]
Data em que a ultima atualização foi atualizada no Banco de Dados
Atualizacao=11/08/2004 [color=red:cdf485be64]//Trocar esta data[/color:cdf485be64]Hora Padrao para Baixar arquivos da TEC
Hora=19:31
[MOEDA]
Data em que a ultima atualização foi feita da Internet
Download=11/08/2004[color=red:cdf485be64]//Trocar esta data[/color:cdf485be64]
#Data em que a ultima atualização foi atualizada no Banco de Dados
Atualizacao=11/08/2004[color=red:cdf485be64]//Trocar esta data[/color:cdf485be64]Hora Padrao para Baixar arquivos da MOEDA
Hora=08:30
[DOWNLOAD]
Tipo=0
[PROXY]
UseProxy=1
ProxyServer=
ProxyPort=
UseProxyPass=0
ProxyUserName=
ProxyUserPass=
[ARQUIVO]
Versão=2
11/08/2004
Rafs
Utilize TIniFile para poder acessar os dados.
Os comandos que você deverá utilzar são ReadDate e WriteDate.
Clique aqui para fazer login e interagir na Comunidade :)