На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: SCINER, B.V.
  
    > Определить корректность массива , без ошибок
      Если в коде попытаться узнать размерность массива используя функции LBound() или UBound() то при непроинициализированном массиве возникнет ошибка:

      Цитата
      Runtime error #9
      Subscript out of range


      Однако существует возможность избежать этой ошибки используя следующую функцию:

      ExpandedWrap disabled
        Private Declare Function GetMem4 Lib "msvbvm60" (ByVal pSrc As Long, ByVal pDst As Long) As Long
        Private Declare Function ArrPtr Lib "msvbvm60" Alias "VarPtr" (arr() As Any) As Long
         
        Function ArrayExists(ByVal APtr As Long) As Boolean
          Dim IsEx As Boolean
          GetMem4 APtr, VarPtr(IsEx)
          ArrayExists = IsEx <> 0
          End Function


      а заюзать можно например так:

      ExpandedWrap disabled
        Private Sub Form_Load()
          Dim TP() As String
          'ДАННЫЙ КОД ПОКАЗАН ДЛЯ ПРИМЕРА И ОН ВСЕГДА БУДЕТ ВОЗВРАЩАТЬ [False]
          MsgBox ArrayExists(ArrPtr(TP))
          End Sub
      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0375 ]   [ 17 queries used ]   [ Generated: 29.03.24, 08:20 GMT ]