- 次の例は、ディレクトリ内にある通常のファイルの情報を取得します。情報の取得は、各ファイルをストリームとして開いて行います。エージェントは、ファイルごとに同じ 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
- 次のエージェントは、読み込みのためにファイルをストリームとして開きます。ユーザーはファイルの名前を指定しますが、拡張子 .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
- 次のエージェントは、書き込みのためにファイルを開きます。
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