• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Как проверить Subscript Out Of Range

  • Автор темы Guest
  • Дата начала
M

morpheus

Денис Кириченко
нет поле єто ВСЕГДА массив . если поле НЕ multivalue то это будет массив с 1 элементом, индекс которого будет 0

тоесть NotesDocument.Field(0) - обращаемся к 1 элементу поля Field в обьекте типа NotesDocument
 
K

Kee_Keekkenen

Денис Кириченко
если поле немногозначное, то ubound будет равен 0
 
G

Guest

ээ.. я б так (NotesDocument.Authorisers( Ubound( NotesDocument.Authorisers ))) не додумался написать
все-таки правильней поле занести в вариант
Код:
dim var as variant
var = NotesDocument.getitemvalue("Authorisers")
sTest = var( ubound(var))
или использовать итем
Код:
Set item = NotesDocument.GetFirstItem("Authorisers")
sTest = item.Values(Ubound(item.Values))
Код:
Dim var As Variant
Dim sTest As String

Dim item As NotesItem
Set item = cDoc.GetFirstItem("Authorisers")

var = item.Values
sTest = var( Ubound(var))

В переменной var занесенно значение "Dennis V. Kirichenko,", на стороке sTest = var( Ubound(var)) Lotus ругается Type mismtche ;)

Денис Кириченко
если поле немногозначное, то ubound будет равен 0

т.е. если в поле содержится одно значение, то Ubound не вернет это значение? Если поле содержит не одно значение то тогда есть надежда на то что все таки будет на выходе хоть какое-то значение?
 
O

Omh

Код:
Dim var As Variant	
var = cDoc.GetItemValue("Authorisers")

Dim sTest As String
sTest = Cstr(var(Ubound(var)))

И вообще строку sTest = Cstr(var(Ubound(var))) для дебага лучше разложить на атомарные операции.
Самому понятнее станет.
 
G

Guest

Код:
Dim var As Variant	
var = cDoc.GetItemValue("Authorisers")

Dim sTest As String
sTest = Cstr(var(Ubound(var)))

И вообще строку sTest = Cstr(var(Ubound(var))) для дебага лучше разложить на атомарные операции.
Самому понятнее станет.

В этом случае возвращает пустое значение ;)
 
A

Archi2001

Денис Кириченко
Ubound возращает "верхний" номер элемента массива ... когда элемент 1 - то номер у него "0" и Ubound вернёт тот самый ноль ...

а в последнем примере, что содержит массив var? в дебагере ....
 
G

Guest

Денис Кириченко
Ubound возращает "верхний" номер элемента массива ... когда элемент 1 - то номер у него "0" и Ubound вернёт тот самый ноль ...

а в последнем примере, что содержит массив var? в дебагере ....

Совершенно верно расскрываю в дебагере переменную var напротив нуля значени ""
 
O

Omh

А ubound от массива с одним элементом "" будет ""
Так что всё правильно ;)
 
G

Guest

Я сейчас стрелятся буду ;)
Код:
Dim iCount As Integer	
iCount = -1

Dim dsnList As Variant
dsnList = doc.GetItemValue("AuthPersons")

For n% = Lbound(dsnList) To Ubound(dsnList)
iCount = iCount + 1
Next
В переменную dsnList занесенно: Oksana V Kononenko, Igor V Nekrasov, Stanislav V Yudin, Andrii M Kuzmenko
а считает это все за одно значение :(
 
K

Kee_Keekkenen

В переменной var занесенно значение "Dennis V. Kirichenko,", на стороке sTest = var( Ubound(var)) Lotus ругается Type mismtche ;)

на случай, если не известен тип поля можно проверять мульти-немульти
Код:
If Datatype(var) = 8712 Then
sTest = cstr(var(ubound(var))
else
sTest = cstr(var)
end if
 
O

Omh

Kee_Keekkenen
IsArray?

Денис Кириченко
Не надо стреляться, просто сделай multivalue поле.
"AuthPersons" которое.
И документ пересохрани.
 
G

Guest

Kee_Keekkenen
IsArray?

Денис Кириченко
Не надо стреляться, просто сделай multivalue поле.
"AuthPersons" которое.
И документ пересохрани.

Поле изначально было multivalue, а зачем пересохранять, значение из другого документа берется, где поле и так было пересохранено с десяток раз ;)
 
K

Kee_Keekkenen

Я сейчас стрелятся буду ;)
В переменную dsnList занесенно: Oksana V Kononenko, Igor V Nekrasov, Stanislav V Yudin, Andrii M Kuzmenko
а считает это все за одно значение :(
если через юи заносишь значения, то вполне возможно, что
1. поле не многозначное
2. многозначное, но например, разделитель значений при пользовательском вводе выставлен ";", а ты вводишь
"Oksana V Kononenko, Igor V Nekrasov, Stanislav V Yudin, Andrii M Kuzmenko", т.о. ты занес только одно значение !

выставь comma в свойстве поля "Separate values when user enters"
 
G

Guest

если через юи заносишь значения, то вполне возможно, что
1. поле не многозначное
2. многозначное, но например, разделитель значений при пользовательском вводе выставлен ";", а ты вводишь
"Oksana V Kononenko, Igor V Nekrasov, Stanislav V Yudin, Andrii M Kuzmenko", т.о. ты занес только одно значение !

выставь comma в свойстве поля "Separate values when user enters"

Много раз thanks, действительно в поле были коряво введены значения :)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!