Страница: 1 | 2 |
dim strText as String 'зпаолняю outtextbox.text=dblmyArray(i)
Функция есть такая, UBound называется: Dim myArray(1 To 100, 0 To 3, -3 To 4) Функция то есть, только непонятно что в ней толку в данной ситуации. Либо я не понял вопроса. У тебя массив статический - 100 элементов. Ubound всегда будет выдавать 100. А уж сколько ты заполнил ненулевыми значениями - об этом она ведать не может. Тут надо либо запоминать, либо проводить проверку циклом. Либо используй динамический массив с Preserve. To cresta: Раз человек делает dim dblmyArray(100) as double, то извини, он уж никак не может делать Redim. index out of bound может и возникать при обращении, скажем, к 101-му элементу, или к 0-му, если Option Base 1, или вообще к отрицательному. >как узнать до какого ниндекса заполнен массив? Сам же написал /dim dblmyArray(100) as double/ он до ста и заполнен нулями. >len(strtext)- здесь его невозможно ипользовать, >потаму как я выкидываю из него часть информации Так запомни его до цикла (а то сразу - выкидывать...) Судя по тому, что: происходит: программа выехала за пределы массива. Как она туда попала - неизвестно, кода не видно, возможно, был не Dim, как здесь описано, а Redim в цикле заполнения массива. Иначе зачем пытаться считывать 101-й элемент, зная, что их всего 100? Это граничит с глупостью. Предполагая, что человек не глуп настолько, также можно предположить, что был всё-таки Redim, и ошибка происходила при индексах, меньших чем 101 Трудно представить, что человек вставил кусок кода, имея ввиду нечто совсем другое. Если уж сказано - dim dblmyArray(100) as double, то никаких Redim тут подразумаеваться не может. Кроме того - этот цикл никак не привязан к длине массива. То есть, если длина строки больше 100 символов - ошибка возникнет автоматически. Вариант второй - Option Base 1. В таком случае ошибка возникает в начале цикла. Было бы проще если бы человек сказал чего он хочет добиться в итоге. Было бы проще что-либо решить. cresta Зачем ему этот UBOUND если он его и так знает (len(strText))? Ну раз спрашивает, наверное не знает, или возможно почему-то не равен он len(strText) Спасибо за ответы Cresta! Всё получилось. Ну все, тогда я в осадке. Пойду полежу в кустах... To LamerOnLine: Слушай, а там в кустах место ещё есть? Может и мне тоже пригодится, вот сделает тебе Chill прозрачный текстбокс, и я тоже в кусты... 14 ответов на такой вопрос... браво
Вопрос: Как узнать до какого индекса заполнен массив?
Добавлено: 04.04.04 05:17
Автор вопроса: Paranoik87 | Web-сайт:
strText=me.inputTexBox.text
'есть массив:
dim dblmyArray(100) as double
for i = 0 to len(strText) 'len(strText)-Динамическое число.
dblmyArray(i)=GetChar(strText,i)
Next i
'вывожу
for i1 = 0 to ???? 'как узнать до какого ниндекса заполнен массив?
'len(strtext)- здесь его невозможно ипользовать, потаму как я выкидываю из
'него часть информации и если я его ставлю(len(strtext)), то происходит:
'выход индекса массива за пределы его величены.
Next i1
iwanow@front.ru
Ответы
Всего ответов: 29
Номер ответа: 1
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #1
Добавлено: 04.04.04 06:12
Dim retval
retval=UBound(myArray,1) 'возвращает 100
retval=UBound(myArray,2) 'возвращает 3
retval=UBound(myArray,3) 'возвращает 4
Номер ответа: 2
Автор ответа:
Paranoik87
ICQ: 249957963
Вопросов: 5
Ответов: 5
Web-сайт:
Профиль | | #2
Добавлено: 05.04.04 04:58
Спасибо тебе cresta!
Номер ответа: 3
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #3
Добавлено: 05.04.04 09:25
Номер ответа: 4
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #4
Добавлено: 05.04.04 09:41
То LamerOnLine : Раз происходит ошибка index out of boud, значит не 100 элементов, а меньше, возможно человек делает redim, но не описал этого в своем вопросе.
Номер ответа: 5
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #5
Добавлено: 05.04.04 11:35
Номер ответа: 6
Автор ответа:
Sur
ICQ: 1249088
Вопросов: 10
Ответов: 304
Web-сайт:
Профиль | | #6
Добавлено: 05.04.04 15:15
Номер ответа: 7
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #7
Добавлено: 05.04.04 15:30
'выход индекса массива за пределы его величены.
Номер ответа: 8
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #8
Добавлено: 05.04.04 16:30
Номер ответа: 9
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #9
Добавлено: 05.04.04 20:58
Судя по всему, человек заполучил свою ф-цию Ubound и решил с её помощью проблему, раз больше не заглядывает в свой топик. А мы тут с тобой жуем этот массив
Номер ответа: 10
Автор ответа:
Sur
ICQ: 1249088
Вопросов: 10
Ответов: 304
Web-сайт:
Профиль | | #10
Добавлено: 05.04.04 21:48
Номер ответа: 11
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #11
Добавлено: 05.04.04 23:49
Номер ответа: 12
Автор ответа:
Paranoik87
ICQ: 249957963
Вопросов: 5
Ответов: 5
Web-сайт:
Профиль | | #12
Добавлено: 06.04.04 04:34
Номер ответа: 13
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #13
Добавлено: 06.04.04 09:31
Номер ответа: 14
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #14
Добавлено: 06.04.04 16:29
Номер ответа: 15
Автор ответа:
User Unknown
Вечный Юзер!
ICQ: uu@jabber.cz
Вопросов: 120
Ответов: 3302
Профиль | | #15
Добавлено: 06.04.04 16:44