Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Обзор функций и операторов для работы с массивами (ReDim, UBound, LBound).


Информационный Канал Subscribe.Ru

"Подробный обзор функций, операторов и объектов Visual Basic6"
Выпуск
6

Привет всем кто подписался на эту рассылку! Ведущий рассылки - SBJoker

Сайт рассылки -  "Колизей"

Несколько слов от автора: 
1. Результаты голосования о необходимости создания полосы "Вопросы и Ответы" следующие:
Ответ Проголосовало % от числа подписчиков*
Да, нужна 12 0,65
Нет, не нужна 0 0

*Всего у рассылки 1844 подписчика.

Я думаю, что результаты красноречиво говорят о Вашей позиции, т.е. "Вопросы и Ответы" - не нужны...

Сегодня, в рассылке:

1. Оператор ReDim
2. Функция UBound
3. Функция LBound
4. Совет выпуска


Оператор ReDim 

Синтаксис: ReDim [Preserve] Array( NewSize )
Параметры:
Preserve
- ключевое слово, используется для "переноса" данных сохранённых в массиве до переопределения его размерности в новый, переопределённый массив. Не является обязательным, только если нужно сохранить старые данные. Его использование требует дополнительной памяти и времени, что заметно на больших, по объему хранимых данных, массивах. Например, если у вас был массив:

MyArray(0) ="One"
MyArray(1) ="Two"
MyArray(2) ="Three"


То, при использовании следующей строки кода, данные будут выглядеть так:
ReDim MyArray(1)

MyArray(0) ="One"
MyArray(1) ="Two"


Словами: те элементы которые "не вместились" в новый массив, будут потеряны.

Array - динамический массив (точнее ссылка на него, посредством имени массива).
Динамический массив отличается от статического способом его объявления:

Dim StatArray(1500) As String 'статический массив
Dim DinArray() As String 'динамический массив


Как вы заметили, всё отличие в том, что у динамического массива сначала нет элементов.
NewSize - Число, обозначающее новую размерность массива.

Выполняемое действие:
переопределение размера массива, с сохранением предшествующих данных или нет.

Применение: обычно используется для увеличения размерности массива, и в тех случаях когда размер массива предугадать заранее нельзя. В остальных случаях более предпочтительно использовать статические массивы.

Примечание: для многомерных динамических массивов есть одно ограничение: изменять можно лишь последнее измерение массива, например:
Dim MyArray() As String

ReDim MyArray(1 To 100, 5) 'массив из элементов от 1 до 100 в первом измерении и от 0 до 5 - во втором (всего 100*6=600 элементов)
ReDim MyArray(1 To 100, 10) 'не вызовет ошибки
ReDim MyArray(1 To 50, 10) 'вызовет ошибку, т.к. можно переопределить только последнее измерение.
ReDim MyArray(5 To 100, 10) 'вызовет ошибку, т.к. нельзя менять начало индексации элементов.


Функция UBound

Синтаксис: UBound( Array, Dimention )
Параметры:
Array
- любой массив.
Dimention - номер измерения для многомерных массивов, для одномерных не используется.
Возвращаемое значение:
наибольший индекс элемента массива SourceArray в измерении Dimention.
Пример:

Dim arLines(5) as String

MsgBox "Наибольший индекс массива: " & CStr(UBound(arLines))

Применение: вычисление количества элементов массива в паре с LBound, в качестве придела в цикле при переборе элементов массива.


Функция LBound

Синтаксис: LBound( Array, Dimention )
Параметры:
Array
- любой массив.
Dimention - номер измерения для многомерных массивов, для одномерных не используется.
Возвращаемое значение:
наименьший индекс элемента массива SourceArray в измерении Dimention.
Пример:

Dim arLines(5) as String

MsgBox "Наименьший индекс массива: " & CStr(LBound(arLines))

Применение: вычисление количества элементов массива в паре с UBound, в качестве начального значения переменной цикла  при переборе элементов массива.


Совет выпуска:

Чтобы настроить множество свойств объекта в run-time режиме, удобно использовать конструкцию With .... End With

With frmMain.MyTextBox
.Text="None"
.Locked=True
.Left=365
.Multiline=True
.MaxLenght=25
End With

Вы так же можете присылать свои советы на адрес указанный ниже.



Если есть какие-либо пожелания, предложения или неточности в рассылке пишите: sbjocker@orel.ru
Ведущий рассылки - SBJoker.

 


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное