在 LotusScript 中生成随机语言

generate random language in LotusScript

我尝试为在 LotusScript 中测试的个人文档随机生成语言:

Dim arr_language(0 To 10) As String
arr_language(0) = "English"
    arr_language(1) = "Spanish"
    arr_language(2) = "Chinese"
    arr_language(3) = "German"
    arr_language(4) = "Dutch"
    arr_language(5) = "Swedish"
    arr_language(6) = "French"
    arr_language(7) = "Danish"
    arr_language(8) = "Italian"
    arr_language(9) = "Polish"
    arr_language(10) = "Portugese"  

Dim language As String
language = arr_language( Round(Rnd()* UBound(arr_language) ,0) )

我注意到有时 'language' 有时是空的。我做错了什么?

首先:你的代码是好的,虽然它不会以相同的概率生成所有语言:对于 100 个用户,英语和葡萄牙语 uese 将出现大约 4- 5次而其他语言将出现10-11次。

如果您将代码更改为

language = arr_language( Int(Rnd() * (UBound(arr_language) + 1)) )

那么所有值的概率都差不多。

但是:尽管如此,您的代码将始终生成 0 到 10 之间的数字,因此将设置变量语言。

要真正回答您的问题,您需要提供为语言生成“空”输出的那部分代码。我猜 - 和 Rob 一样 - 你获取那个值并将它放在一个文档的字段中,在那里它可能被 ComputeWithForm 或任何其他重新计算的方式删除。

例如您的“语言”字段可能是一个不允许新值的 DialogList,并且您的一个或多个数组值不是该字段的有效条目,因此被删除(在计算或打开时)...

如果我能问的话,我会说它是值“Portugese”,因为在英语中正确的拼写是“Portuguese”...