0

我正在写 Lotusscript 代理,我怎么说我需要在空格字符的右边取值?例如,这在 / 的右边取值:

fld9.Value = StrRight(Cstr(doc.request(0)), "/") 

但是如果我用空格代替/,它就不起作用。我需要在那里写一些代码吗?

谢谢

4

2 回答 2

2

您确定要查找的字符是空格而不是另一个空格字符吗?

如果它是一个空格,那么这将与您的示例相同:

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
于 2013-06-12T12:13:28.883 回答
1

它确实适用于空间" "。我的猜测是您的表达式Cstr(doc.request(0))不包含空格,因为Cstr()将例如数字转换为没有空格的字符串。

如果您想从日期/时间值中获取时间作为字符串,那么最好使用format()

fld9.Value = Format(doc.request(0), "hh:nn:ss")
于 2013-06-12T12:08:02.900 回答