• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Ls: Illegal Redim

  • Автор темы Автор темы ToxaRat
  • Дата начала Дата начала

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 328
42
Код:
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й раз....я в глубокой непонятке
это не фиксированный массив
 
0-ой элемент злонамеренно пропускается?
 
Try:
Код:
ReDim Preserve me.Rec(i) as c_RecFiles

PS. I use LIST

Добавлено: О переключилась.
Может действительно тип меняется, но странно почему на 6-ой раз.
И может действительно использовать список раз 0-й элемент пустует.
 
вот нафига эти танцы с Count...
есть Ubound
нужен подсчет - Property Get Count As Long:Ubound(me.Rec)+1
 
вот нафига эти танцы с Count...
есть Ubound
нужен подсчет - Property Get Count As Long:Ubound(me.Rec)+1
то есть вместо чёткой и быстрой переменной ты предлагаешь каждый раз запускать тяжелую функцию которая считает размер? :)
 
то есть вместо чёткой и быстрой переменной ты предлагаешь каждый раз запускать тяжелую функцию которая считает размер? :)
т.е. ты проводил замеры и готов поделится ими? :(

Добавлено: вот даже представить не могу - зачем мне Count
 
Public Rec() As c_RecFiles
заменил на
Public Rec() As Variant

и всё проканало, первый раз с таким сталкиваюсь...
 
Public Rec() As c_RecFiles
заменил на
Public Rec() As Variant

и всё проканало, первый раз с таким сталкиваюсь...
я тебе больше скажу - списки (с классами) и массивы классов "проще" указывать как Variant иначе и в итераторах (типа forall) можно наткнуться на type mismatch
 
т.е. ты проводил замеры и готов поделится ими? ;)

Добавлено: вот даже представить не могу - зачем мне Count
ты эта....иди индусам обьясни, на кой они в Col.Count используют :( :D :D видать совсем оборзели :P

Добавлено:
я тебе больше скажу - списки (с классами) и массивы классов "проще" указывать как Variant иначе и в итераторах (типа forall) можно наткнуться на type mismatch
В моей 15ти летней работы с лотусом - это произошло впервые :)
в данном контексте есть подозрение, что это из-за работы с функцией Dir() и её псевдо рекурсией...
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab