例: Open method (NotesStream - LotusScript®)

  1. 次の例は、ディレクトリ内にある通常のファイルの情報を取得します。情報の取得は、各ファイルをストリームとして開いて行います。エージェントは、ファイルごとに同じ NotesStream オブジェクトを開いたり閉じたりして再利用します。
    Sub Initialize
      Dim session As New NotesSession
      Dim stream As NotesStream
      Set stream = session.CreateStream
      files& = 0
      bytes& = 0
      directory$ = "C:¥StreamFiles"
      Chdir directory$
      file$ = Dir$("*.*")
      While file$ <> ""
        If Not stream.Open(path$ & file$) Then
          Messagebox file$,, "Open failed"
          Exit Sub
        End If
        files& = files& + 1
        bytes& = bytes& + stream.Bytes
        Call stream.Close
        file$ = Dir$()
      Wend
      Messagebox "Number of files = " & files& & Chr(13) & _
      "Total bytes = " & bytes&,, "Normal files in " & directory$
    End Sub
  2. 次のエージェントは、読み込みのためにファイルをストリームとして開きます。ユーザーはファイルの名前を指定しますが、拡張子 .txt は指定しません。次のエージェントは、Subject アイテムの内容に対してファイル名を使用します。
    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
  3. 次のエージェントは、書き込みのためにファイルを開きます。
    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.Bytes <> 0 Then
        Messagebox pathname,, _
        "File already exists and has content"
        Exit Sub
      End If
      Call stream.WriteText(doc.GetItemValue("Body")(0))
      Call stream.Close
    End Sub