Suche…


Lesen der .gz-Textdatei Zeile für Zeile

Diese Klasse öffnet eine GZ-Datei (übliches Format komprimierter Protokolldateien) und gibt bei jedem Aufruf von .NextLine() eine Zeile zurück.

Für die temporäre Dekomprimierung wird kein Speicherplatz benötigt. Dies ist sehr nützlich für große Dateien.

Imports System.IO

Class logread_gz

  Private ptr As FileStream
  Private UnGZPtr As Compression.GZipStream
  Private line_ptr As StreamReader
  Private spath As String 

  Sub New(full_filename As String)
    spath = full_filename
  End Sub   

  Sub Open()
     Me.ptr = File.OpenRead(spath)
     Me.UnGZPtr = New Compression.GZipStream(ptr, Compression.CompressionMode.Decompress)
     Me.line_ptr = New StreamReader(UnGZPtr)
  End Sub()

  Function NextLine() As String
    'will return Nothing if EOF
    Return Me.line_ptr.ReadLine()
  End Function

  Sub Close()
    Me.line_ptr.Close()
    Me.line_ptr.Dispose()
    Me.UnGZPtr.Close()
    Me.UnGZPtr.Dispose()
    Me.ptr.Close()
    Me.ptr.Dispose()
  End Sub

End Class

Hinweis: Aus Gründen der Lesbarkeit ist keine Ausfallsicherheit gegeben.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow