例: Truncate method

次のエージェントは、ファイルでストリームを開き、書き込みを行います。ファイルにすでに内容がある場合は、エージェントがユーザーに中止するかどうかを問い合わせます。ユーザーが処理を進めることを選択した場合、エージェントはファイルを書き直すのか、ファイルに追加するのかをユーザーに問い合わせます。ユーザーが書き直しを選択した場合は、エージェントがファイルへの書き込み前にストリームを切り捨てます。

%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