run-time 91.Что это за ошибка и как её устранить???

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
theal
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 148
Зарегистрирован: 03.05.2009 (Вс) 16:12

run-time 91.Что это за ошибка и как её устранить???

Сообщение theal » 13.05.2009 (Ср) 23:55

при загрузке страницы в webbrowser1 ,Производится переход по ссылке.Иногда на некоторых сайтах выскакивает run-time 91.Что это за ошибка и как её устранить???

arvitaly
Постоялец
Постоялец
 
Сообщения: 485
Зарегистрирован: 12.04.2009 (Вс) 0:30
Откуда: Казань

Re: run-time 91.Что это за ошибка и как её устранить???

Сообщение arvitaly » 14.05.2009 (Чт) 0:08

Пункт 1) Узнать, что это за ошибка (msdn.microsoft.com)
Пункт 2) Устранить ее

awl100Alex
Постоялец
Постоялец
 
Сообщения: 355
Зарегистрирован: 29.01.2008 (Вт) 15:19
Откуда: Украина

Re: run-time 91.Что это за ошибка и как её устранить???

Сообщение awl100Alex » 14.05.2009 (Чт) 1:07

Это значит, что ссылки уже закончились, а переход по ним в цикле продолжается. :D
Если For Link=1, то links.length должно быть links.length - 1

DeMONiZ
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 162
Зарегистрирован: 03.01.2009 (Сб) 18:32

Re: run-time 91.Что это за ошибка и как её устранить???

Сообщение DeMONiZ » 14.05.2009 (Чт) 5:47

Покажи код скажу из за чего.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: run-time 91.Что это за ошибка и как её устранить???

Сообщение alibek » 14.05.2009 (Чт) 7:40

awl100Alex писал(а):Если For Link=1, то links.length должно быть links.length - 1

Глупость.
Если нумерация начинается с 1, то заканчиваться она должна на links.length.
Lasciate ogni speranza, voi ch'entrate.

awl100Alex
Постоялец
Постоялец
 
Сообщения: 355
Зарегистрирован: 29.01.2008 (Вт) 15:19
Откуда: Украина

Re: run-time 91.Что это за ошибка и как её устранить???

Сообщение awl100Alex » 14.05.2009 (Чт) 13:55

alibek писал(а):Глупость.
Если нумерация начинается с 1, то заканчиваться она должна на links.length.


Ответная глупость. :(
Читай Description здесь...
http://docstore.mik.ua/orelly/web/jscript/refp_87.html

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: run-time 91.Что это за ошибка и как её устранить???

Сообщение iGrok » 14.05.2009 (Чт) 14:00

awl100Alex писал(а):Читай Description здесь...
http://docstore.mik.ua/orelly/web/jscript/refp_87.html

Тебе там строка "numbered from zero" ни о чём не говорит, случаем?
label:
cli
jmp label

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: run-time 91.Что это за ошибка и как её устранить???

Сообщение alibek » 14.05.2009 (Чт) 14:00

А "from zero" пропустил?
Перечитай еще раз свое предыдущее сообщение.
Lasciate ogni speranza, voi ch'entrate.

theal
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 148
Зарегистрирован: 03.05.2009 (Вс) 16:12

Re: run-time 91.Что это за ошибка и как её устранить???

Сообщение theal » 14.05.2009 (Чт) 14:22

[Хакер] :: Пока theal не научится пользоваться тегом [code], все его сообщения, содержащие неоформленный код, будут удаляться.
Последний раз редактировалось Хакер 14.05.2009 (Чт) 14:38, всего редактировалось 1 раз.
Причина: Нарушение норм оформления сообщения.

theal
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 148
Зарегистрирован: 03.05.2009 (Вс) 16:12

Re: run-time 91.Что это за ошибка и как её устранить???

Сообщение theal » 14.05.2009 (Чт) 14:40

theal писал(а):[Хакер] :: Пока theal не научится пользоваться тегом [code], все его сообщения, содержащие неоформленный код, будут удаляться.

Извините--думал что это не обязательно

theal
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 148
Зарегистрирован: 03.05.2009 (Вс) 16:12

Re: run-time 91.Что это за ошибка и как её устранить???

Сообщение theal » 14.05.2009 (Чт) 14:41

DeMONiZ писал(а):Покажи код скажу из за чего.


вот код:

Код: Выделить всё
Private Sub Command1_Click()
Dim i As Long, cur As Long
        Randomize
        WebBrowser1.Navigate Texsite.Text
        While WebBrowser1.ReadyState <> READYSTATE_COMPLETE
            DoEvents
        Wend
        For Each TestLink In WebBrowser1.Document.links
            If TestLink.innerText = "Фотография" Then
                Exit For
            End If
            i = i + 1
        Next TestLink
        cur = Int(6 * Rnd + i + 1)
        WebBrowser1.Document.links(cur).Click
End Sub

Private Sub Command3_Click()

End
End Sub

Private Sub Command4_Click()
On Error Resume Next
Data1.Recordset.AddNew
End Sub

Private Sub Command5_Click()
Data1.Recordset.MoveNext

End Sub

Private Sub Command6_Click()
On Error Resume Next
Data2.Recordset.AddNew
End Sub

Private Sub Form_Load()

End Sub

Private Sub Texsite_Change()
Timer1.Enabled = True

End Sub

Private Sub Text2_Change()
Texsite.Text = Text2.Text
If Text2.Text = "" Then
Text3.Text = "ПРИЕХАЛИ"
Form1.Refresh
End If
End Sub

Private Sub Timer1_Timer()
Txtim.Text = Txtim.Text + 1

End Sub

Private Sub Timer2_Timer()
Txtim2.Text = Txtim2 + 1
End Sub

Private Sub Txtim_Change()
If Txtim.Text = "5" Then
WebBrowser1.Navigate Texsite.Text
End If
If Txtim.Text = "20" Then
Txtim.Text = "0"
Timer1.Enabled = False
Dim i As Long, cur As Long
        Randomize
        While WebBrowser1.ReadyState <> READYSTATE_COMPLETE
            DoEvents
        Wend
        On Error Resume Next
        For Each TestLink In WebBrowser1.Document.links
            If TestLink.innerText = textx.Text Then
            On Error GoTo 0
                Exit For
            End If
            i = i + 1
        Next TestLink
        cur = Int(6 * Rnd + i + 1)
        WebBrowser1.Document.links(cur).Click
        Timer2.Enabled = True
        End If
End Sub

Private Sub Txtim2_Change()
On Error Resume Next
If Txtim2.Text = "20" Then
Data1.Recordset.MoveNext
Txtim2.Text = "0"
Timer2.Enabled = False
End If
End Sub

awl100Alex
Постоялец
Постоялец
 
Сообщения: 355
Зарегистрирован: 29.01.2008 (Вт) 15:19
Откуда: Украина

Re: run-time 91.Что это за ошибка и как её устранить???

Сообщение awl100Alex » 14.05.2009 (Чт) 15:45

Код: Выделить всё
cur = Int(6 * Rnd + i + 1)
WebBrowser1.Document.links(cur).Click

Скорее всего в links(cur) попадает номер для ссылки, которой нет в наборе Document.links.

theal
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 148
Зарегистрирован: 03.05.2009 (Вс) 16:12

Re: run-time 91.Что это за ошибка и как её устранить???

Сообщение theal » 14.05.2009 (Чт) 15:50

awl100Alex писал(а):
Код: Выделить всё
cur = Int(6 * Rnd + i + 1)
WebBrowser1.Document.links(cur).Click

Скорее всего в links(cur) попадает номер для ссылки, которой нет в наборе Document.links.

а как его изменить чтоб разброс меньше был??
Код: Выделить всё
cur = Int(2 или 3 * Rnd + i + 1)
Так возможно ?

awl100Alex
Постоялец
Постоялец
 
Сообщения: 355
Зарегистрирован: 29.01.2008 (Вт) 15:19
Откуда: Украина

Re: run-time 91.Что это за ошибка и как её устранить???

Сообщение awl100Alex » 14.05.2009 (Чт) 15:58

Тебе нужно чтобы "cur" был в строгих диапазонах от значений "i". Скорее всего можно попробовать так...
Код: Выделить всё
cur = Int((i * Rnd) + 1)
- получишь диапазон от 1 до "i". :)

awl100Alex
Постоялец
Постоялец
 
Сообщения: 355
Зарегистрирован: 29.01.2008 (Вт) 15:19
Откуда: Украина

Re: run-time 91.Что это за ошибка и как её устранить???

Сообщение awl100Alex » 14.05.2009 (Чт) 16:02

iGrok писал(а):Тебе там строка "numbered from zero" ни о чём не говорит, случаем?

alibek писал(а):А "from zero" пропустил?
Перечитай еще раз свое предыдущее сообщение.

Если не знаете, то не говорите ерунды! :mrgreen:

theal
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 148
Зарегистрирован: 03.05.2009 (Вс) 16:12

Re: run-time 91.Что это за ошибка и как её устранить???

Сообщение theal » 14.05.2009 (Чт) 16:41

awl100Alex писал(а):Тебе нужно чтобы "cur" был в строгих диапазонах от значений "i". Скорее всего можно попробовать так...
Код: Выделить всё
cur = Int((i * Rnd) + 1)
- получишь диапазон от 1 до "i". :)


Но в этом случае переход по ссылке осуществляется не правильно..Клик приходится на первую попавшуюся ссылку на сайте..Тогда для чего нужен код поиска ссылки?
Код: Выделить всё
TestLink.innerText = "Фотография"

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: run-time 91.Что это за ошибка и как её устранить???

Сообщение iGrok » 14.05.2009 (Чт) 16:56

awl100Alex писал(а):Если не знаете, то не говорите ерунды! :mrgreen:

Поясни, что ты имеешь в виду.
label:
cli
jmp label

awl100Alex
Постоялец
Постоялец
 
Сообщения: 355
Зарегистрирован: 29.01.2008 (Вт) 15:19
Откуда: Украина

Re: run-time 91.Что это за ошибка и как её устранить???

Сообщение awl100Alex » 14.05.2009 (Чт) 17:12

theal
Посмотри здесь, может потом и вопросы отпадут.
http://bbs.vbstreets.ru/viewtopic.php?p=6721637#p6721637
iGrok писал(а):Поясни, что ты имеешь в виду.

Я имею ввиду, что если делать...
Код: Выделить всё
For i = 0 To ie.Document.links.length
List1.AddItem ie.Document.links(i).href
Next i

То последнее значение length вызовет ту самую Run-Time 91. :(
Поэтому, нужно делать...
Код: Выделить всё
For i = 0 To ie.Document.links.length - 1

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: run-time 91.Что это за ошибка и как её устранить???

Сообщение iGrok » 14.05.2009 (Чт) 17:25

awl100Alex писал(а):Я имею ввиду, что если делать...
Код: Выделить всё
For i = 0 To ie.Document.links.length
List1.AddItem ie.Document.links(i).href
Next i

То последнее значение length вызовет ту самую Run-Time 91. :(
Поэтому, нужно делать...
Код: Выделить всё
For i = 0 To ie.Document.links.length - 1

Всё классно. Но, кажется, ты опять невнимателен к сообщениям других. Алибек тебе не зря советовал перечитать своё предыдущее сообщение...
awl100Alex писал(а):Это значит, что ссылки уже закончились, а переход по ним в цикле продолжается. :D
Если For Link=1, то links.length должно быть links.length - 1

Ы?
label:
cli
jmp label

awl100Alex
Постоялец
Постоялец
 
Сообщения: 355
Зарегистрирован: 29.01.2008 (Вт) 15:19
Откуда: Украина

Re: run-time 91.Что это за ошибка и как её устранить???

Сообщение awl100Alex » 14.05.2009 (Чт) 17:30

Да один ХРЕН как! Что For i = 0, что For i = 1 - все равно!! :evil:
Проверь сначала, а потом пиши.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: run-time 91.Что это за ошибка и как её устранить???

Сообщение iGrok » 14.05.2009 (Чт) 17:57

Хоть это и не имеет уже никакого отношения к обсуждаемой теме...

awl100Alex писал(а):Да один ХРЕН как! Что For i = 0, что For i = 1 - все равно!! :evil:
Проверь сначала, а потом пиши.

Не кипятись. И хватит уже чушь молоть. Лучше подумай, что ты несёшь. Если links.length = 100, то
For i = 0 to links.length - 1 выполнится 100 раз, при этом i будет принимать значения от 0 до 99, а
For i = 1 to links.length - 1 выполнится 99 раз, при этом i будет принимать значения от 1 до 99.
Нету разницы, да?

Правильный вариант во втором случае будет For i = 1 to links.length. 100 итераций со значениями от 1 до 100. О чём тебе и сказал alibek.
label:
cli
jmp label

theal
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 148
Зарегистрирован: 03.05.2009 (Вс) 16:12

Re: run-time 91.Что это за ошибка и как её устранить???

Сообщение theal » 14.05.2009 (Чт) 19:26

Пожалуйста посмотрите код вверху..Там нет никаких IE --там Webbrowser и к тому-же прекрасно видно что выполняется поиск ссылки *Фотография* таких ссылок на сайте много после Фотография идёт номер...Мы находим эту ссылку по "Фотография" Надо выполнить не именно по ней клик а в диапазоне 3-4 стоящих в одном блоке(рядом стоящих)

awl100Alex
Постоялец
Постоялец
 
Сообщения: 355
Зарегистрирован: 29.01.2008 (Вт) 15:19
Откуда: Украина

Re: run-time 91.Что это за ошибка и как её устранить???

Сообщение awl100Alex » 15.05.2009 (Пт) 0:19

theal писал(а):Там нет никаких IE --там Webbrowser

Webbrowser работает на движке IE так что разницы никакой!
theal писал(а):...клик а в диапазоне 3-4 стоящих в одном блоке...

Механизм получения диапазона я уже тебе привел.
Код: Выделить всё
cur = Int((4 * Rnd) + 1)
If cur \ 3 Or cur \ 4 Then WebBrowser1.Document.links(cur).Click

Исходя из этого, сначала получаем диапазон от 1 до 4, а затем фильтруем до диапазона от 3 до 4.
Это нужно или опять не то?
А вот как достучаться к "...стоящих в одном блоке(рядом стоящих)" - этого я не знаю.

iGrok
Ты снова меня НЕ понял! :( Еще раз повторяю: проверь код и сразу все поймешь.
Твой "Правильный вариант For i = 1 to links.length" как раз и вызовет Run-Time 91 в строке links(i).href.
Писать нужно...
For i = 0 To ie.Document.links.length - 1
For i = 1 To ie.Document.links.length - 1
For i = 10 To ie.Document.links.length - 1
For i = 127 To ie.Document.links.length - 1
For i = 342 To ie.Document.links.length - 1

Естественно когда i<links.length-1
Это все буде действительно правильно!

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Re: run-time 91.Что это за ошибка и как её устранить???

Сообщение dr.MIG » 15.05.2009 (Пт) 0:34

А прав-таки Alibek и iGrok, хотя и ты отчасти, просто ты не понял, что они тебе сказали. Они говорили про цикл, который перебирает ВСЕ ссылки и он будет i=0 to links.length-1 или i=1 to links.length, но во втором случае внутри цикла обращение к элементу массива, естественно, должно быть links(i-1), а не links(i).
Salus populi suprema lex

awl100Alex
Постоялец
Постоялец
 
Сообщения: 355
Зарегистрирован: 29.01.2008 (Вт) 15:19
Откуда: Украина

Re: run-time 91.Что это за ошибка и как её устранить???

Сообщение awl100Alex » 15.05.2009 (Пт) 0:57

dr.MIG писал(а):...просто ты не понял, что они тебе сказали...

Да все я понял. Суть вопроса была не в ссылках и их колличествах, а почему возникает ошибка, ответ на который я дал сразу же. Так что на этом уже давно нужно поставить точку!


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 39

    TopList  
cron