Examples: IsEOS property (NotesStream - LotusScript®)

This agent reads and processes blocks of bytes until end of stream occurs.

Sub Initialize
REM Set names of input and output files
  Const DIRECTORY = "c:\StreamFiles\"
  Const FILENAME = "domobj"
  Const EXT = ".tlb"
  Dim inPath As String, outPath As String
  inPath = DIRECTORY & FILENAME & EXT
  outPath = DIRECTORY & FILENAME & "copy" & EXT
  
  Dim session As NotesSession
  Dim inStream As NotesStream, outStream As NotesStream
  Set session = New NotesSession
  
REM Get the input file
  Set inStream = session.CreateStream
  If Not inStream.Open(inPath, "binary") Then
    Messagebox inPath,, "Open failed"
    Exit Sub
  End If
  If inStream.Bytes = 0 Then
    Messagebox inPath,, "File has no content"
    Exit Sub
  End If
  
REM Get the output file
  Set outStream = session.CreateStream
  If Not outStream.Open(outPath, "binary") Then
    Messagebox outPath,, "Open failed"
    Exit Sub
  End If
  If outStream.Bytes <> 0 Then
    Messagebox outPath,, "File exists and has content"
    Exit Sub
  End If
  
REM Transfer input file to output file
  Do
    buffer = inStream.Read(32767)
    Call outStream.Write(buffer)
  Loop Until inStream.IsEOS
  
  Call inStream.Close
  Call outStream.Close
End Sub