Я пытался разобраться в этой проблеме самостоятельно, но, возможно, есть кое-что, что я неправильно понимаю о том, как ArrayUnique
работает.
Вот пример LotusScript кода:
'Let's test some dates
dateOne = CDat("12/16/2010")
dateTwo = CDat("12/16/2010")
testSuccess = (dateOne = dateTwo)
'On evaluation, testSuccess = true
'Now let's make an array ...
Dim someArray(1) As Variant
someArray(0) = dateOne
someArray(1) = dateTwo
uniqueArray = ArrayUnique(someArray)
'uniqueArray has the same two elements ... the duplicate hasn't been removed
В приведенном выше примере dateOne, dateTwo, testSuccess и uniqueArray - все неявно объявленные переменные варианта.
Что я делаю неправильно?Я прочитал в справку , где говорится:
Использование
Элементы в массиве вариантов будут сравниваться равными, только если онитого же типа.Вариантный массив не может содержать классы или объекты.
Элементы массива, содержащие нулевое значение, будут совпадать с другими нулевыми значениями.
Пустые элементы массива будут совпадать с другими пустыми элементами.
Ну, вариантный массив в этом примере содержит вариантные переменные типа даты / времени.Так что, если я правильно читаю, я не делаю ничего плохого.
Редактировать: На форумах Notes , пользователь Thoams Kennedy попытался сделать следующее:
Если вы укажете компонент времени, как это
dateOne = CDat ("16.12.2010 04:20:17 AM")
dateTwo = CDat ("16.12.2010 04:20:17 AM")
все равно будет обрабатывать их как отдельные элементы.Компонент, похоже, не содержит миллисекунды, поэтому я бы сказал, что ArrayUnique не знает, как обращаться с вариантами DateTime.
Поэтому он пришел к выводу, что ArrayUnique, ммм, не работает.