Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

-_KIKO_-

FSO - Ler arquivo do fim para o começo

Recommended Posts

Pessoal, to precisando ler um arquivo de log diariamente em ASP usando FSO, mas como o log tem mais de 800MB, ficaria complicado e lento alem de comer toda IO do servidor para fazer isso

 

Eu preciso apenas ler as ultimas 50 linhas do LOG, então não seria interessante ler do inicio ao fim do log.

Teria como ao invés de ler o LOG como While atendofstream usar um modo de ler do final até o começo?

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu sei ler, gravar, editar um arquivo.

O problema mesmo estaria em ler ele de baixo para cima.

 

Não posso ler ele dentro de uma array para tratar por lbound() ubound() depois porque imagine jogar 800MB de Log em uma variavel.

 

Daria no mesmo que ler ele todo...o uso de I/O iria ser igual.

O meu problema mesmo é desempenho

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que eu tenha conhecimento, não há uma maneira de fazer isto "direto", mas existem algumas funções prontas que podem ajudar você a trilhar seus caminhos.

 

Function Tail(fil, nlines)
 'Returns last nlines lines from file fil
 Const ForReading = 1, TristateUseDefault = -2, _
  DoNotCreateFile = False
 With CreateObject("Scripting.FileSystemObject")._
  OpenTextFile(fil, ForReading, _
  False, TristateUseDefault)
 .Readall
 LinesToSkip = .Line - nlines: .Close
 End With
 With CreateObject("Scripting.FileSystemObject")._
  OpenTextFile(fil, ForReading, _
  False, TristateUseDefault) 
  If LinesToSkip <0 Then LinesToSkip = 0
  For i = 1 To LinesToSkip: .Skipline: Next
  For i = 1 To nlines
   If Not .AtEndOfStream Then 
	Tail = Tail & .ReadLine
   End If
   If i < nlines Then Tail = Tail & vbCrLf
  Next
  .Close
 End With
End Function
Fonte: http://dev.remotenetworktechnology.com/wsh/lib/fso.htm

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.