Массив

Тема в разделе "Lotus - Программирование", создана пользователем wowa, 27 апр 2007.

  1. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Подскажите, пожалуйста...
    Я раньше всегда забирал список форм из базы вот таким способом
    ' Получаем список форм открытой БД
    Forall form In db.Forms
    stMsgString = stMsgString & Chr(10) & form.Name
    End Forall

    Но это получется строка, а мне нужно массив...
    Это как -то делается (как я понимаю) Redim.. но я так и не понял как (((...
     
  2. Ronchik

    Ronchik Гость

    Можно вот так

    Код (Text):
    Dim stMsgString() as string
    Dim i as Integer
    i=0
    Forall form In db.Forms
    ReDim Preserve stMsgString(i)
    stMsgString(i) = form.Name
    i=i+1
    End Forall
     
  3. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Для: wowa
    RTFM + Dynamic arrays

    на самом деле всё просто
    используя Redim мы указываем верхнюю границу массива от 0 до N, с полным очищением всех значений в массиве
    используя Redim Preserve мы указываем верхнюю границу массива от 0 до N, НО ранее введённые хначения в массиве остаються

    Код (Text):
    Dim arrMyArray() as string ' мы обвиили дин. массив
    i = 0
    Forall form In db.Forms  
    Redim Preserve arrMyArray(i)  
    arrMyArray(i) = form.Name
    i = i + 1
    End Forall


    а в Вашем коде легко зделать из строки массив
    Код (Text):
    dim f as variant
    Forall form In db.Forms
    stMsgString = stMsgString & Chr(10) & form.Name
    End Forall
    f = Evaluate( { @Explode(} & stMsgString & {; @Char(10) )} )
     
  4. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Для: Ronchik
    Спасибо!!
     
  5. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    А можно сразу создать массив нужного размера:
    Код (Text):
    Dim arr() As String
    Redim arr(Lbound(db.Forms) To Ubound(db.Forms))
     
  6. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Для: Morpheus
    Спасибо

    Всем спасибо!!!
     
  7. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Для: wowa
    бедный, стока ответов... фиг разгребёш... :D :D :D ;)
     
Загрузка...

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