Lotus notes 使用Lotusscript向IBM(Lotus)Notes富文本字段添加超过64KB的内容
我使用以下代码将.log(文本)文件的内容拉入Notes富文本字段,但如果数据量大于64 KB,则会失败:Lotus notes 使用Lotusscript向IBM(Lotus)Notes富文本字段添加超过64KB的内容,lotus-notes,lotusscript,Lotus Notes,Lotusscript,我使用以下代码将.log(文本)文件的内容拉入Notes富文本字段,但如果数据量大于64 KB,则会失败: Dim io As Integer Dim text As String Dim fileSize As Single io = Freefile fileSize = 0 Open f For Input As io fileSize = Filelen( f ) If (fileSize > 65536) Then Msgbox "Sorry, but the fi
Dim io As Integer
Dim text As String
Dim fileSize As Single
io = Freefile
fileSize = 0
Open f For Input As io
fileSize = Filelen( f )
If (fileSize > 65536) Then
Msgbox "Sorry, but the file " + f + " is > 64KB and cannot be rendered in the default rich text field.",, "Can't continue"
Close #io
Exit Sub
End If
While Not(Eof(io))
Line Input #io, text
Call uid.FieldAppendText("RT1", text + Chr(13) + Chr(10))
Wend
Close #io
我检查文件大小以避免错误(这是一个段落不能超过64KB的投诉)。那么,如何添加多个段落,以便显示超过64KB的数据呢?插入换行符以创建大于64KB的段落。
但在操作富文本字段时,应该使用后端类。插入换行符以创建大于64KB的段落。
但在操作富文本字段时,应该使用后端类。使用NotesStream一次读取一行,然后使用NotesRichTextItem的AppendText和AddNewLine(1,True) 下面的subimportstreamport子例程未经测试,所以墨菲定律说这里的某个地方有一个很大的漏洞,但至少它可以编译!祝你好运
Option Public
Option Declare
%Include "lserr.lss"
%REM
Function fstreamOpenFile(sPath As String, bTruncate As Boolean, bConfirmExists As Boolean) As NotesStream
<br>
<b>Arguments</b>
<blockquote><dl><dt>sPath</dt><dd>Filepath of the file to be opened/created.</dd>
<dt>bTruncate</dt><dd>Boolean. True if file is for output and any existing file should be replaced rather than appended to.</dd>
<dt>bConfirmExists</dt><dd>Boolean. If True, and the opened file is empty, then an ErrFileNotFound error will be thrown.</dd></dl></blockquote>
%END REM
Public Function fstreamOpenFile(sPath As String, bTruncate As Boolean, bConfirmExists As Boolean) As NotesStream
Dim bFlag As Boolean
Dim session As New NotesSession
Dim stream As NotesStream
If sPath = "" Then Error 13, "No path supplied."
Set stream = session.Createstream()
If Not stream.Open(sPath) Then Error ErrOpenFailed, {Could not open file at "} + sPath + {"}
If bConfirmExists And stream.Bytes = 0 Then Error ErrFileNotFound, {File at "} + sPath + {" is missing or empty.}
If bTruncate Then Call stream.Truncate()
Set fstreamOpenFile = stream
End Function
%REM
Sub subImportStreamToRT(stream As NotesStream, rt As NotesRichTextItem)
For each line of text in the stream, appends that text in its own paragraph.
Assumes that the first line of text can simply be appended without first creating a new paragraph. (e.g. rt is a blank field or you've already added a new line before calling this function)
<br>
<b>Arguments</b>
<blockquote><dl><dt>stream As NotesStream</dt><dd>NotesStream containing text to be imported into a rich text file</dd>
<dt>rt As NotesRichTextItem</dt><dd>NotesRichTextItem to import stream's text into.</dd></dl></blockquote>
%END REM
Sub subImportStreamToRT(stream As NotesStream, rt As NotesRichTextItem)
If Not stream.IsEOS Then
Do
rt.AppendText stream.ReadText(STMREAD_LINE, EOL_ANY)
If stream.IsEOS Then
Exit Sub
Else
rt.AddNewLine 1, True
End If
Loop
End If
End Sub
选项公共
选项声明
%包括“lserr.lss”
%雷姆
函数fstreamOpenFile(sPath作为字符串,bTruncate作为布尔值,bConfirmExists作为布尔值)作为NotesStream
论据
要打开/创建的文件的sPathFilepath。
bTruncateBoolean。如果文件用于输出,并且应替换而不是附加到任何现有文件,则为True。
b确认存在工具。如果为True,并且打开的文件为空,则将抛出ErrFileNotFound错误。
%终止REM
公共函数fstreamOpenFile(sPath作为字符串,bTruncate作为布尔值,bConfirmExists作为布尔值)作为NotesStream
作为布尔值的Dim bFlag
将会话设置为新便笺会话
暗淡无光
如果sPath=“”,则错误13,“未提供路径。”
Set stream=session.Createstream()
如果不是stream.Open(sPath),则错误ErrOpenFailed,{无法打开位于“}+sPath+{”}的文件
如果bConfirmExists和stream.Bytes=0,则错误ErrFileNotFound,{File at“}+sPath+{”丢失或为空。}
如果是bTruncate,则调用stream.Truncate()
设置fstreamOpenFile=stream
端函数
%雷姆
Sub-ImportStreamPort(流为NotesStream,rt为NotesRichTextItem)
对于流中的每一行文本,将该文本追加到其自己的段落中。
假定可以简单地追加第一行文本,而无需先创建新段落。(例如,rt是一个空白字段,或者您在调用此函数之前已经添加了新行)
论据
stream As NotesStreamNotesStream包含要导入到富文本文件中的文本
rt作为NotesRichTextItemNotesRichTextItem导入流的文本。
%终止REM
Sub-ImportStreamPort(流为NotesStream,rt为NotesRichTextItem)
如果不是stream.IsEOS,那么
做
rt.AppendText stream.ReadText(STMREAD\u行,下线\u任意)
如果stream.IsEOS那么
出口接头
其他的
rt.AddNewLine 1,True
如果结束
环
如果结束
端接头
使用
fstreampenfile(sFilePath,False,True)
使用NotesStream一次读取一行,然后使用NotesRichTextItem的AppendText和AddNewLine(1,True) 下面的subimportstreamport子例程未经测试,所以墨菲定律说这里的某个地方有一个很大的漏洞,但至少它可以编译!祝你好运
Option Public
Option Declare
%Include "lserr.lss"
%REM
Function fstreamOpenFile(sPath As String, bTruncate As Boolean, bConfirmExists As Boolean) As NotesStream
<br>
<b>Arguments</b>
<blockquote><dl><dt>sPath</dt><dd>Filepath of the file to be opened/created.</dd>
<dt>bTruncate</dt><dd>Boolean. True if file is for output and any existing file should be replaced rather than appended to.</dd>
<dt>bConfirmExists</dt><dd>Boolean. If True, and the opened file is empty, then an ErrFileNotFound error will be thrown.</dd></dl></blockquote>
%END REM
Public Function fstreamOpenFile(sPath As String, bTruncate As Boolean, bConfirmExists As Boolean) As NotesStream
Dim bFlag As Boolean
Dim session As New NotesSession
Dim stream As NotesStream
If sPath = "" Then Error 13, "No path supplied."
Set stream = session.Createstream()
If Not stream.Open(sPath) Then Error ErrOpenFailed, {Could not open file at "} + sPath + {"}
If bConfirmExists And stream.Bytes = 0 Then Error ErrFileNotFound, {File at "} + sPath + {" is missing or empty.}
If bTruncate Then Call stream.Truncate()
Set fstreamOpenFile = stream
End Function
%REM
Sub subImportStreamToRT(stream As NotesStream, rt As NotesRichTextItem)
For each line of text in the stream, appends that text in its own paragraph.
Assumes that the first line of text can simply be appended without first creating a new paragraph. (e.g. rt is a blank field or you've already added a new line before calling this function)
<br>
<b>Arguments</b>
<blockquote><dl><dt>stream As NotesStream</dt><dd>NotesStream containing text to be imported into a rich text file</dd>
<dt>rt As NotesRichTextItem</dt><dd>NotesRichTextItem to import stream's text into.</dd></dl></blockquote>
%END REM
Sub subImportStreamToRT(stream As NotesStream, rt As NotesRichTextItem)
If Not stream.IsEOS Then
Do
rt.AppendText stream.ReadText(STMREAD_LINE, EOL_ANY)
If stream.IsEOS Then
Exit Sub
Else
rt.AddNewLine 1, True
End If
Loop
End If
End Sub
选项公共
选项声明
%包括“lserr.lss”
%雷姆
函数fstreamOpenFile(sPath作为字符串,bTruncate作为布尔值,bConfirmExists作为布尔值)作为NotesStream
论据
要打开/创建的文件的sPathFilepath。
bTruncateBoolean。如果文件用于输出,并且应替换而不是附加到任何现有文件,则为True。
b确认存在工具。如果为True,并且打开的文件为空,则将抛出ErrFileNotFound错误。
%终止REM
公共函数fstreamOpenFile(sPath作为字符串,bTruncate作为布尔值,bConfirmExists作为布尔值)作为NotesStream
作为布尔值的Dim bFlag
将会话设置为新便笺会话
暗淡无光
如果sPath=“”,则错误13,“未提供路径。”
Set stream=session.Createstream()
如果不是stream.Open(sPath),则错误ErrOpenFailed,{无法打开位于“}+sPath+{”}的文件
如果bConfirmExists和stream.Bytes=0,则错误ErrFileNotFound,{File at“}+sPath+{”丢失或为空。}
如果是bTruncate,则调用stream.Truncate()
设置fstreamOpenFile=stream
端函数
%雷姆
Sub-ImportStreamPort(流为NotesStream,rt为NotesRichTextItem)
对于流中的每一行文本,将该文本追加到其自己的段落中。
假定可以简单地追加第一行文本,而无需先创建新段落。(例如,rt是一个空白字段,或者您在调用此函数之前已经添加了新行)
论据
stream As NotesStreamNotesStream包含要导入到富文本文件中的文本
rt作为NotesRichTextItemNotesRichTextItem导入流的文本。
%终止REM
Sub-ImportStreamPort(流为NotesStream,rt为NotesRichTextItem)
如果不是stream.IsEOS,那么
做
rt.AppendText stream.ReadText(STMREAD\u行,下线\u任意)
如果stream.IsEOS那么
出口接头
其他的
rt.AddNewLine 1,True
如果结束
环
如果结束
端接头
使用
fstreampenfile(sFilePath,False,True)
基本上,它是AddNewline met的第二个参数