Обучающие статьи. Урок - Список значений и массивы в BAS
- Список значений и массивы в BAS
- Пример типа данных Список значений
- Полезный метод НайтиПоЗначению("ИмяЗначения")
- Список значений с вложенной структурой
- Массивы в BAS
- Метод Вставить()
- Массивы. Общий вид
- Метод ВГраница()
- Массивы. Использование метода ВГраница()
- Метод Найти()
- Поиск в массиве
- Метод Получить()
- Метод Установить()
Список значений и массивы в BAS
Наша серия обучающих статей. Ознакомимся списками значений и массивами в программе BAS.
Несколько похож на структуру, но имеет ряд более широких возможностей. Список зачастую применяют для работы с интерфейсом (выбор значения в выпадающем списке), создания некой структуры отбора для параметров запроса или для некой специфической задачи, например, временном хранении ряда переменных или иных значений и поиск по ним.
Пример типа данных Список значений
На выходе у нас будет следующий список значений
Как видно список похож на структуру. В списке, кроме непосредственно значения, есть еще колонки.
«Представление» - где можно указать представление значения.
Например:
Для Значения «Петя» можно указать представление «Петя Петров Петрович», т.е. значение не привязано к представлению.
«Картинка» – какая-то общая или ваша картинка, если необходимо.
«Пометка» - можно указать Истину или Ложь, для каких-то специфических отборов.
Отличие метода Вставить() от аналогичного в структуре в том что мы не заменяем существующее значение, а сдвигаем его далее по списку.
Полезный метод НайтиПоЗначению("ИмяЗначения")
- возвращает Элемент списка значений или значение «неопределено».
Неопределено – это когда необходимо использовать пустое значение, не принадлежащее ни к одному другому типу, т.е. оно не определенное.
Давайте сделаем несколько примеров. Например, нам нужно создать список значений с перечнем сотрудников и дней рождений и структуру с гостями, так же добавим условие поиска в списке.
Список значений с вложенной структурой
В результате у нас получился список значений с вложенной структурой
Таким образом, мы можем организовать вложенность хранимых данных. Зачем нам это может быть нужно?
Например:
Чтобы добраться до вложенных данных и обработать их после или принять решение на основании существования таких данных. Давайте сделаем мини пример.
Список значений с вложенной структурой
Давайте разберем, что мы написали. Первая новая конструкция – генератор случайных чисел. Это встроенная функция, которая возвращает случайное число. В генератор мы вводим два числа, минимальное и максимальное, генератор выдает случайное число между значениями.
Далее определяем список переменных. Если их не определить, могут появиться ситуации, когда переменная Гость 1 и Гость 2 не будут заполнены и это вызовет ошибку.
Затем с помощью знакомых нам уже логических условий заполним переменные.
Теперь заполним список значений полученными переменными и далее заполним структуру.
После заполнения проверим количество и выведем сообщение пользователю в зависимости от результата.
Вторая новая конструкция – «СписокДнейРождения[1].Значение.Количество() <> 0»
В списке значений у нас сейчас две строки, первая значение – кто то из именинников, представление число его дня рождения, вторая строка это структура гостей.
Структура гостей имеет две строки с гостем 1 и гостем 2. Для того чтобы непосредственно обратится к определенной строке, нужно указать ее индекс в квадратных скобках.«СписокДнейРождения[1]» наша структура расположена в колонке Значение. Обращаемся к ней.
- «СписокДнейРождения[1].Значение». Если мы захотим узнать конкретно значение первой строки структуры, то выражение будет иметь такой вид:
- «СписокДнейРождения[1].Значение[0].Значение».
Напоминаем, вся нумерация в BAS начинается с ноля, т.е. первая строчка будет иметь индекс (номер) 0;
Массивы в BAS
во многом аналогичны предыдущим двум типам данных, списку значений и структуре, но имеет и ряд отличий от них.
Массив, как и список значений можно использовать в параметре запроса.
Метод Вставить()
работает не так как у списка значений. Обязательным параметром этого метода является «индекс строки». Если индекс находится за границами массива, то будут добавлены пустые строки в зависимости от разницы индекса последней строки и нового индекса.
Массивы. Общий вид
В результате массив будет таким
Метод ВГраница()
У нас было только два индекса до добавления списка значений в пятый индекс. После добавления образовались строки 2-4 с неопределенными значениями. Тут нам и пригодится еще один метод массива «ВГраница()». Этот метод возвращает самый большой индекс массива. Перед добавлением списка значений этот метод вернет 1, т.к. на строке 0 у нас текст, а в строке 1 число.
Можно использовать такой прием, чтобы не ошибиться с индексами
Массивы. Использование метода ВГраница()
Таким образом, мы указали, что вставить нужно на следующую строку после последней строки.
Метод Найти()
Поиск в массиве тоже работает несколько иначе. Соорудим небольшой код.
Поиск в массиве
Метод "Найти()"возвращает не значение как в списке, а индекс строки. По этому для того чтобы сообщить значение переменной сотрудник в массиве, нужно указать индекс строки где это значение расположено. Аналогично эта строка выглядит так «Массив[0]», где 0 это «Массив.Найти(Сотрудник)»
Метод Получить()
абсолютно аналогичен оператору «[…]» двойные квадратные скобки.
Метод Установить()
- это аналог «Вставить()» из списка значений. Указываете индекс строки, куда нужно вставить значение и непосредственно само значение.
Так же, наша компания проводит обучение по курсам:
Обучение проводится в вечернее время, что позволит вам не отрываться от работы или обучения, практикующим программистом нашей компании.
Если у вас остались вопросы, Вы всегда можете обратиться к нашим аналитикам по телефонам:
(093) 090-70-20
(095) 090-70-20
(068) 090-70-20
Свяжитесь с нами
Если вы хотите получить больше информации, заполните эту форму. Мы свяжемся с вами в ближайшее время.