ler arquivo txt cíclico
bom dia, estou com determinado problema, tenho um arquivo q preciso ler o mesmo de tempos em tempos, para monitorar determinada ação, ou seja, cíclico, exemplo a primeira leitura fui até a linha 100, a próxima deveria começar da 101, existe algum comando ou função q no momento da abertura do arquivo consigo posicionar em uma determinada linha?
Desde já agradeço!!!
Desde já agradeço!!!
Rodrigo Pereira
Curtidas 0
Respostas
Joel Rodrigues
26/04/2012
Primeiramente você precisará de uma variável pública para armazenar a última posição lida. Feito isso, você pode carregar o arquivo .txt em um TStringList e iniciar a leitura a partir da variável armazenada.
Permanecendo a dúvida, é só avisar.
Permanecendo a dúvida, é só avisar.
GOSTEI 0
Rodrigo Pereira
26/04/2012
Teria um fragmento de código para ilucidar?
Desde já agradeço!
Desde já agradeço!
GOSTEI 0
Joel Rodrigues
26/04/2012
Primeiramente declare a variável na seção private ou public do seu form:
Ao abrir o form, no evento onCreate, defina um valor inicial 0 para essa variável
Agora, para ler a lista, use a seguinte rotina, adaptando à sua necessidade:
Nesse caso, estou lendo de 5 em 5 itens. Cada vez que essa rotina for executada, eu leio 5 itens sequenciais do arquivo e ponho em um listbox. Vale lembrar que a variável ultimo_lido é zerada ao abrir o form, se você precisa mantê-la após fechar o programa, deverá gravá-la em algum local fixo (banco de dados, arquivo, registro do Windows, etc).
Qualquer dúvida, fique à vontade para questionar.
private
ultimo_lido : integer;
Ao abrir o form, no evento onCreate, defina um valor inicial 0 para essa variável
procedure TForm1.FormCreate(Sender: TObject); begin ultimo_lido := 0; end;
Agora, para ler a lista, use a seguinte rotina, adaptando à sua necessidade:
var
lista : TStringList;
i : integer;
begin
lista := TStringList.Create();
lista.LoadFromFile(d:\lista.txt);
for i := 1 to 5 do
begin
Inc(ultimo_lido);
ListBox1.Items.Add(lista.Strings[ultimo_lido]);
end;
Nesse caso, estou lendo de 5 em 5 itens. Cada vez que essa rotina for executada, eu leio 5 itens sequenciais do arquivo e ponho em um listbox. Vale lembrar que a variável ultimo_lido é zerada ao abrir o form, se você precisa mantê-la após fechar o programa, deverá gravá-la em algum local fixo (banco de dados, arquivo, registro do Windows, etc).
Qualquer dúvida, fique à vontade para questionar.
GOSTEI 0