次のエージェントは、ファイルでストリームを開き、書き込みを行います。ファイルにすでに内容がある場合は、エージェントがユーザーに中止するかどうかを問い合わせます。ユーザーが処理を進めることを選択した場合、エージェントはファイルを書き直すのか、ファイルに追加するのかをユーザーに問い合わせます。ユーザーが書き直しを選択した場合は、エージェントがファイルへの書き込み前にストリームを切り捨てます。
%INCLUDE "lsconst.lss"
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
pathname = pathname & doc.GetItemValue("Subject")(0) & ".txt"
If Not stream.Open(pathname, "ASCII") Then
Messagebox pathname,, "Open failed"
Exit Sub
End If
If stream.IsReadOnly Then
Messagebox pathname,, "File is read-only"
Exit Sub
End If
If stream.Bytes <> 0 Then
If Messagebox("Do you want to abort?", _
MB_YESNO + MB_ICONQUESTION, _
"File exists and has content?") = IDYES Then
Exit Sub
End If
If Messagebox("Do you want to replace the old content?", _
MB_YESNO + MB_ICONQUESTION, _
"Rewrite or append?") = IDYES Then
Call stream.Truncate
Else
Call stream.WriteText(Chr(13) & Chr(10))
End If
End If
Call stream.WriteText(doc.GetItemValue("Body")(0))
Call stream.Close
End Sub