Ls: Illegal Redim

Тема в разделе "Lotus - Программирование", создана пользователем ToxaRat, 24 окт 2014.

  1. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    Код (Text):
    Class c_MasFiles
    Public Count As Integer
    Public Rec() As c_RecFiles

    Sub Add2Class(sName As String, sPath As String, sSub As String, bFile As Boolean) ' Добавить в класс файл или директорию
    Dim i As Integer
    me.Count = me.Count + 1
    i = me.Count
    ReDim Preserve me.Rec(i)
    Set Me.Rec(i) = New c_RecFiles
    Me.Rec(i).NameFile = sName
    Me.Rec(i).Path = sPath
    Me.Rec(i).sSubdir = sSub
    Me.Rec(i).FullPath = sPath & sSub & sName
    Me.Rec(i).isFile = bFile
    End Sub
    ReDim Preserve me.Rec(i)
    тут ошибка, причем на срабатывании в 6й раз....я в глубокой непонятке
    это не фиксированный массив
     
  2. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.074
    Симпатии:
    300
    0-ой элемент злонамеренно пропускается?
     
  3. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.051
    Симпатии:
    146
    Try:
    Код (LotusScript):
    ReDim Preserve me.Rec(i) as c_RecFiles
    PS. I use LIST

    Добавлено: О переключилась.
    Может действительно тип меняется, но странно почему на 6-ой раз.
    И может действительно использовать список раз 0-й элемент пустует.
     
  4. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    Код (Text):
    Sub New(sPath As String) ' Создание класса
    me.Count = -1
    Call me.ScanFiles(sPath, "") ' Сканирование папок
    End Sub
    поверь, ни разу не пропускают ноль, всегда начинаю с -1
     
  5. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.074
    Симпатии:
    300
    вот нафига эти танцы с Count...
    есть Ubound
    нужен подсчет - Property Get Count As Long:Ubound(me.Rec)+1
     
  6. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    то есть вместо чёткой и быстрой переменной ты предлагаешь каждый раз запускать тяжелую функцию которая считает размер? :)
     
  7. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.074
    Симпатии:
    300
    т.е. ты проводил замеры и готов поделится ими? :(

    Добавлено: вот даже представить не могу - зачем мне Count
     
  8. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    Public Rec() As c_RecFiles
    заменил на
    Public Rec() As Variant

    и всё проканало, первый раз с таким сталкиваюсь...
     
  9. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.074
    Симпатии:
    300
    я тебе больше скажу - списки (с классами) и массивы классов "проще" указывать как Variant иначе и в итераторах (типа forall) можно наткнуться на type mismatch
     
  10. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    ты эта....иди индусам обьясни, на кой они в Col.Count используют :( :D :D видать совсем оборзели :p

    Добавлено:
    В моей 15ти летней работы с лотусом - это произошло впервые :)
    в данном контексте есть подозрение, что это из-за работы с функцией Dir() и её псевдо рекурсией...
     
Загрузка...
Похожие Темы - Illegal Redim
  1. dimat
    Ответов:
    8
    Просмотров:
    1.747

Поделиться этой страницей