[ GMC @ 23.03.2004. 16:27 ] @
Pozdrav
kao sto ste iz naslova mogli zakljuciti muci me ovaj error. Imam jedan programcic koji sluzi za chatanje i kad se pokusam konektovati na srver (IRC server) nekada mi se pojavi ovaj error a nekada ne. To me i zbunjuje jer nerazumijem zasto se nekad pojavi a nekada ne.
Ovako izgleda pocetak koda
Code:

Private Sub sckIRC_DataArrival(ByVal bytesTotal As Long)
    Dim strData As String, arrData() As String, i As Long
    Dim arrWords() As String, arrParms() As String
    sckIRC.GetData strData, vbString
arrData = Split(strData, vbCrLf)
    Text3.Text = strData
    For i = 0 To UBound(arrData) - 1
    arrWords = Split(arrData(i), " ")
arrParms() = Split(arrData(i), ":")
Select Case UCase$(arrWords(0))
....


//edit (mladenovicz): dodat code tag


[Ovu poruku je menjao mladenovicz dana 24.03.2004. u 14:50 GMT]
[ Simke @ 23.03.2004. 19:24 ] @
Vidim da imas dosta arrays, greska se pojavljuje jer pokusavas da pristupis elementu koji ne postoji. Recimo jedan array je velicine 9, a ti pokusas da pristupis desetom elementu.
[ GMC @ 23.03.2004. 20:35 ] @
i meni je to palo na pamet al nisam siguran da imam rijesenje. U stavri error se pojavljuje samo na pocetku ( Kad server salje MOTD ).
[ mladenovicz @ 24.03.2004. 12:55 ] @
Koristi Ubound da proveris koliko elemenata ima niz. Ako ti Ubound vrati -1, nemas nista u nizu. Pre nego sto koristis neki element niza proveri da li niz ima dovoljno elemenata.
[ GMC @ 25.03.2004. 15:53 ] @
pa i jesam koristio ubound ( gore sam u prvom postu to naveo) al se to opet desava. A dali je moguce kako da napravim kad se pojavi taj error da mi ne prekine cijeli program nego da uradi neku drugu akciju , jer je fazon u tome ako se npr. pojavi sad error ja kad pokrenem opet program on se nece pojaviti ili nakon 2 3 pokusaja ono se ne pojavi. Pa sam mislio ako moze kad se error pojavi da se program sam restartuje? dali je to moguce?
[ mladenovicz @ 25.03.2004. 16:08 ] @
Citat:
GMC:
pa i jesam koristio ubound ( gore sam u prvom postu to naveo) al se to opet desava


Pa da si ga koristio onda ti sigurno ne bi pucala aplikacija. Btw, kad ti aplikacija pukne pogledaj u kojoj je liniji greska, pa stavi proveru If Ubound () ...

Citat:
GMC:
A dali je moguce kako da napravim kad se pojavi taj error da mi ne prekine cijeli program nego da uradi neku drugu akcijue?


Moze. Imas On Error Statement pa pogledaj u MSDNu.

Code:

Private Function MojaFunkcija()
    On Error GoTo Proc_Error
    
Proc_Exit:
    On Error Resume Next
    Exit Function
    
Proc_Error:
    ' ovde obradi gresku
    Resume Proc_Exit
    
End Function

[ mladenovicz @ 25.03.2004. 16:21 ] @
Citat:
GMC:
Pa sam mislio ako moze kad se error pojavi da se program sam restartuje? dali je to moguce?


Handleuj gresku sa On Error. Restartovanje aplikacije nema bas mnogo smisla.
[ GMC @ 29.03.2004. 14:18 ] @
evo mene opet sa ovim problemom. Evo ispod se nalazi dio koda u kojem se ova greska pojavljuje ( 5 dana sam proveo gledajuci ovo ali ne mogu da shvatim sta je problem... pa ako vas ne mrzi pogledaj te ovo pa mozda vi uocite zasto se pojavljuje ovaj dosadni error) error se pojavljuje u liniji
Select Case UCase$(arrWords(1)) ( odnosno kad uzmem debug ta linija "pozuti")
Code:

Private Sub sckIRC_DataArrival(ByVal bytesTotal As Long)
    Dim strData As String, arrData() As String, i As Long
    Dim arrWords() As String, arrParms() As String, myText As String, newText As String
    sckIRC.GetData strData, vbString
    arrData = Split(strData, vbCrLf)
For i = 0 To UBound(arrData) - 1
    arrWords = Split(arrData(i), " ")
arrParms() = Split(arrData(i), ":")
Select Case UCase$(arrWords(1))
Case "PRIVMSG"
If arrWords(2) = Combo2.Text Then
Else
v0 = arrWords(0)
v3 = arrWords(3)
kk = 0
While kk < 20
razr = Left(v0, kk)
razr2 = Right(razr, 1)
If razr2 = "!" Then
kk2 = kk - 1
 razrr = Left(v0, kk2)
 kk3 = kk2 - 1
B = InStr(strData, vbCrLf)
A = InStr(strData, v3)
C = (B - A) + 1
tekstgl = Right(strData, C)
d = (C - 2)
tekstgl = Left(tekstgl, d)
myText = Text1.Text
newText = "<< " & Right(razrr, kk3) & " >>" & " " & tekstgl
Text1.Text = myText & vbCrLf & newText
Text1.SelStart = Len(Text1.Text)
End If
kk = kk + 1
Wend
End If
End Select
Next i
End Sub


hvala
[ mladenovicz @ 29.03.2004. 14:29 ] @
Code:

If Ubound(arrWords)=1 Then
     Select Case UCase$(arrWords(1))
....