LOTUSSCRIPT/COM/OLE CLASSES
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
See Also
ReadText method
Glossary
Feedback on
Help
or
Product Usability
?
Help on Help
All Help Contents
Glossary