Examples: ReadText method

  1. This agent reads a text file and saves its content in the Body item of a new document in the current database. The user specifies the name of the file but not the extension which is .txt. The agent uses the file name for the content of the Subject item.
    Sub Initialize
      Dim session As NotesSession
      Dim db As NotesDatabase
      Dim dc As NotesDocumentCollection
      Dim doc As NotesDocument
      Dim stream As NotesStream
      Dim pathname As String
      pathname = "c:\StreamFiles\"
      Set session = New NotesSession
      Set db = session.CurrentDatabase
      Set dc = db.UnprocessedDocuments
      Set doc = dc.GetFirstDocument
      Set stream = session.CreateStream
      REM Use name of text file as subject
      subject$ = Inputbox$("Name of file")
      pathname = pathname & subject$ & ".txt"
      If Not stream.Open(pathname, "ASCII") Then
        Messagebox pathname,, "Open failed"
        Exit Sub
      End If
      If stream.Bytes = 0 Then
        Messagebox pathname,, "File has no content"
        Exit Sub
      End If
      Set doc = New NotesDocument(db)
      Call doc.ReplaceItemValue("Form", "Main Topic")
      Call doc.ReplaceItemValue("Subject", subject$)
      Call doc.ReplaceItemValue("Body", stream.ReadText())
      Call stream.Close
      Call doc.save(True, True)
    End Sub
  2. This agent is similar to the first example but reads the file a line at a time. The agent adds text to the Body item of the new document until end of stream occurs.
    Sub Initialize
      Dim session As NotesSession
      Dim db As NotesDatabase
      Dim dc As NotesDocumentCollection
      Dim doc As NotesDocument
      Dim stream As NotesStream
      Dim pathname As String
      pathname = "c:\StreamFiles\"
      Set session = New NotesSession
      Set db = session.CurrentDatabase
      Set dc = db.UnprocessedDocuments
      Set doc = dc.GetFirstDocument
      Set stream = session.CreateStream
      REM Use name of text file as subject
      subject$ = Inputbox$("Name of file")
      pathname = pathname & subject$ & ".txt"
      If Not stream.Open(pathname, "ASCII") Then
        Messagebox pathname,, "Open failed"
        Exit Sub
      End If
      If stream.Bytes = 0 Then
        Messagebox pathname,, "File has no content"
        Exit Sub
      End If
      Set doc = New NotesDocument(db)
      Call doc.ReplaceItemValue("Form", "Main Topic")
      Call doc.ReplaceItemValue("Subject", subject$)
      Dim body As New NotesRichTextItem(doc, "Body")
      counter% = 0
      Do
        counter% = counter% + 1
        Call body.AppendText("[LINE " & counter% & "] ")
        buffer$ = stream.ReadText(STMREAD_LINE, EOL_CRLF)
        REM Discard lines with only LF + CR
        While buffer$ = Chr(13) & Chr(10) _
        And (Not stream.IsEOS)
          buffer$ = stream.ReadText(STMREAD_LINE)
        Wend
        Call body.AppendText(buffer$)
      Loop Until stream.IsEOS
      Call stream.Close
      Call doc.save(True, True)
    End Sub