Fórum Ultima Linha de Arq *.txt #229612

03/05/2004

0

Boa tarde,
Estou precisando de uma sugestão, tenho um arquivo txt no seguinte formato:
118 048426 Maquina numero: 557 Programa A 21 P 39 0 24 4 04 1215 1 4561 1076 1 10 C1076 9382 _TARJETA___ 371 199 4584 103963 19 0 25147941 12440 1751 0 0 815292017 815297187 8821 103963 0 0 1 2 291 815293185 371 0 199 0 0 3 103964 0 0 1 10 1155 815293202 371 0 199 0 0 3 103965 0 0 1 3 377 815293220 371 0 199 0 0 3 103966 0 0 1 3 377 815293222 371 0 199 0 0 3 103967 0 0 1 3 377 815293255 371 0 199 0 0 3 103968 0 0 1 3 377 815293257 371 0 199 0 0 3 103969 0 0 1 5 668 815293399 371 0 199 0 0 3 103970 0 0 1 5 668 815293410 371 0 199 0 0 3 103971 0 0 1 4 560 815293495 371 0 199 0 0 3 F 8821 P 33 1 26 4 04 845 1 5107 1076 13 9 C1076 9382 _TARJETA___ 549 199 2817 65019 2 0 17704270 12442 991 0 0 815418363 815418534 1336 65019 0 0 13 9 668 815418475 549 0 199 0 0 3 65020 0 0 13 9 668 815418477 549 0 199 0 0 3 F 1336 P 33 0 26 4 04 1630 1 5278 1076 9 18 C1076 9382 _TARJETA___ 549 199 2818 65021 8 0 17705606 12442 991 0 0 815435791 815440540 4555 65021 0 0 9 16 973 815436865 549 0 199 0 0 3 65022 0 0 9 16 973 815436867 549 0 199 0 0 3 65023 0 0 9 18 1155 815436875 549 0 199 0 0 3 F 22 U03-05-2004


Preciso ler e inserir os dados em uma tabela e tals... até aí tudo bem, o problema é q pra cada registro preciso inserir tbém a data q esse documento foi gerado, que está na última linha desse arquivo [b:968955ab17]U03-05-2004[/b:968955ab17].
Não achei nenhuma propriedade q faça referencia direto para a última linha dele. Existe isso? Como posso fazer essa leitura da data sem ler todas as linhas q ele possui?
Obrigada :D


Fer_nanda

Fer_nanda

Responder

Posts

03/05/2004

Tinorj

O que pode ser feito é carregar o arquivo texto para um TStrings e capturar o valor da última linha

Ex:
procedure btnCapturarDataClick(Sender: TObject);
var
  Conteudo: TStrings;
  Arquivo, UltLinha: String;
  NumLinhas: Integer;
begin
  if not OpenDialog1.Execute then
    Exit;

  Conteudo := TStrings.Create;

  try
    try
      Arquivo := OpenDialog1.FileName;
      Conteudo.LoadFromFile(´C:\SeuArquivo.TXT´);
      NumLinhas := Conteudo.Count;

      UltLinha := Conteudo[NumLinhas - 1]; //Conteudo será U03-05-2004
    except
      ShowMessage(´Ocorreu um erro´);
    end;
  finally
    Conteudo.Free;
  end;
end;


Espero ter ajudado.


Responder

Gostei + 0

03/05/2004

Fer_nanda

Opa!! Ajudou sim, valeu :wink:


Responder

Gostei + 0

05/05/2004

Fer_nanda

Mais uma dificuldade encontrada...
Gente, os campos q preciso ler estão todos numa mesma linha, só q eles não seguem um padrão de posições, eles só são separados por espaços em branco, alguém sabe se existe alguma função no delphi q leia um pedaço da string (até o espaço em branco) e jogue numa variável esse conteúdo?
Em PHP eu sei q existe, a função se chama (acho) split(variavel, char_separador), ela funciona lendo os campos até encontrar o ´char_separador´ e vai jogando para um vetor o conteúdo.
Eu entendo q fazer esse tipo de tratamento não é tão complicado, mas se existe função pra isso... ajuda bastante.
Obrigada


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar