1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Массив

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

  1. wowa

    wowa Well-Known Member

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

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

    Ronchik Гость

    Репутация:
    0
    Можно вот так

    Код:
    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 скриптописец

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

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

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


    а в Вашем коде легко зделать из строки массив
    Код:
    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

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

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

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

    wowa Well-Known Member

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

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

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

    Репутация:
    0
    Регистрация:
    7 авг 2006
    Сообщения:
    3.915
    Симпатии:
    1
    Для: wowa
    бедный, стока ответов... фиг разгребёш... :D :D :D ;)
     
Загрузка...
Похожие Темы - Массив
  1. Karatist
    Ответов:
    0
    Просмотров:
    25
  2. Karatist
    Ответов:
    4
    Просмотров:
    73
  3. D3ad ARbuZzz
    Ответов:
    0
    Просмотров:
    122
  4. никитан10
    Ответов:
    8
    Просмотров:
    109
  5. Faradei
    Ответов:
    0
    Просмотров:
    394

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