I have this Algorithm that sorts array of integers implemented in a simple inventory system in Visual Basic 6.0 for my thesis. The system can sort items by total price, unit price, quantity, etc. But when the input number is within 7 or more digits (ex: 3,382,328), the application produces this error:
Run-time error '9':
Subscript out of range
I believe the problem occurs because the algorithm creates an array with the size equal to the largest input number (which is 3,382,328) that is why it produces an out of range error.
Is there anything that I can do with the algorithm or the programming language or the data type used? I used double as my data type. How do I solve it? If I stop creating arrays equal to the size of the largest input number, the algorithm will not be able to sort correctly. Here's the code where the error occurs:
Dim q, e, g As Integer 'parr(mini) = maxi If mini <> maxi Then If nop > 0 Then For e = 0 To maxi + 1 'On Error GoTo hell parri(e) = 0 'hell: Next e End If If non > 0 Then For g = 0 To Abs(mini) + 1 narr(g) = 0 Next g End If 'distribution of data to respective array For q = 1 To size If Val(ListView2.ListItems(q).ListSubItems(… >= 0 Then parri(ListView2.ListItems(q).ListSubItem… = Val(parri(ListView2.ListItems(q).ListSub… + 1 Else narr(Abs(ListView2.ListItems(q).ListSubI… = Val(narr(Abs(ListView2.ListItems(q).List… + 1 End If Next q End If
the error occurs in
parri(e) = 0
where it creates an array called parri with the size of e where the current value of e is in millions. How do I fix this? Thanks.