Dateiströme


Basic
Ekkart Kleinod  • 

Ströme, z.B. TextInputStream, werden mit dem Schließen über closeInput() nicht neu initialisert. Das heißt, nur Schließen allein reicht nicht aus, um den Strom mit einer neuen Datei zu öffnen.

Versucht man dies, werden leere Zeilen eingelesen.

Schließen eines nicht geöffneten Stroms führt zum Fehler, daher vorher abfragen.

' Variablen deklarieren
Dim oFileAccess As Object
Dim oTextInputStream As Object

' Input Stream aus Datei initialisieren
oFileAccess = createUnoService("com.sun.star.ucb.SimpleFileAccess")
oTextInputStream = createUnoService("com.sun.star.io.TextInputStream")
oTextInputStream.setInputStream(oFileAccess.openFileRead("filename"))
oTextInputStream.setEncoding("windows-1252")

' Stream schliessen
If (Not IsNull(oTextInputStream)) Then
    oTextInputStream.closeInput()
End If

' erneutes Einlesen: alles neu initialisieren

' Input Stream aus Datei initialisieren
oFileAccess = createUnoService("com.sun.star.ucb.SimpleFileAccess")
oTextInputStream = createUnoService("com.sun.star.io.TextInputStream")
oTextInputStream.setInputStream(oFileAccess.openFileRead("filename"))
oTextInputStream.setEncoding("windows-1252")

' Stream schliessen
If (Not IsNull(oTextInputStream)) Then
    oTextInputStream.closeInput()
End If