我正在写 Lotusscript 代理,我怎么说我需要在空格字符的右边取值?例如,这在 / 的右边取值:
fld9.Value = StrRight(Cstr(doc.request(0)), "/")
但是如果我用空格代替/,它就不起作用。我需要在那里写一些代码吗?
谢谢
我正在写 Lotusscript 代理,我怎么说我需要在空格字符的右边取值?例如,这在 / 的右边取值:
fld9.Value = StrRight(Cstr(doc.request(0)), "/")
但是如果我用空格代替/,它就不起作用。我需要在那里写一些代码吗?
谢谢
您确定要查找的字符是空格而不是另一个空格字符吗?
如果它是一个空格,那么这将与您的示例相同:
fld9.Value = StrRight(Cstr(doc.request(0)), " ")
或者更灵活
Dim strSpace as String
strSpace = Chr$(20)
fld9.Value = StrRight(Cstr(doc.request(0)), strSpace)
要找出你在那里得到了什么,你需要一个字符串(你可能知道)并执行以下操作:
Dim strSpaceChar As String
Dim lngAsc as Long
strSpaceChar = Mid$("Your String with a space", 5, 1)
' 5 = Position of the "space" character, 1 = Number characters
lngAsc = Asc( strSpaceChar )
如果 lngAsc <> 20 那么您需要将上面示例中的 strSpace 替换为正确的字符...
如果文本中可能有不同的“空格”并且您在运行之前不知道,则使用所有已知的“空格”变体创建一个数组(下面的示例将 NewLines 和 HTML nbsp 视为空格)
Dim arrSpaces( 3 ) as String
arrSpaces( 0 ) = Chr$( 10 )
arrSpaces( 1 ) = Chr$( 13 )
arrSpaces( 2 ) = Chr$( 0 )
arrSpaces( 3 ) = Chr$( 160 )
并将其替换为“真实”空间...
myString = Replace( Cstr(doc.request(0)) , arrSpaces , Chr$(20) )
编辑因为新的问题:有类来处理日期/时间值。您可以执行以下操作:
Dim dtRequest as NotesDateTime
Dim strDate as String
Dim strTime as String
Set dtRequest = New NotesDateTime( doc.request(0) )
strDate = dtRequest.DateOnly
strTime = dtRequest.TimeOnly
它确实适用于空间" "
。我的猜测是您的表达式Cstr(doc.request(0))
不包含空格,因为Cstr()
将例如数字转换为没有空格的字符串。
如果您想从日期/时间值中获取时间作为字符串,那么最好使用format()
:
fld9.Value = Format(doc.request(0), "hh:nn:ss")