i want to redclare a multidimensional array, but it tells me that the subscript is out of range. im using redim preserve, heres the code:

VB Code:
  1. Public Map() As Byte
  2. Public Sub LoadMap(MapPath As String)
  3. Dim Line, Token As String
  4. Dim HCounter, VCounter As Integer
  5. Open App.Path & "\maps\" & MapPath & ".map" For Input As #1
  6. Do Until EOF(1)
  7. VCounter = VCounter + 1
  8. Line Input #1, Line
  9. Do While HCounter <= Len(Line)
  10. HCounter = HCounter + 1
  11. ReDim Preserve Map(HCounter, VCounter)
  12. Token = Mid(Line, HCounter, 1)
  13. If Token > 0 Then
  14. Map(HCounter, VCounter) = 0
  15. Else
  16. Map(HCounter, VCounter) = 1
  17. End If
  18. Select Case Token
  19. Case "0"
  20. frmScreen.Picture = LoadPicture(App.Path & "\graphics\grass.gif")
  21. Case "1"
  22. frmScreen.Picture = LoadPicture(App.Path & "\graphics\water.gif")
  23. End Select
  24. BitBlt frmScreen.picGame.hDC, (HCounter - 1) * 40, (VCounter - 1) * 40, 40, 40, frmScreen.hDC, 0, 0, SRCCOPY
  25. Loop
  26. Loop
  27. End Sub

The code is in a module. Does anyone know whats wrong?