Access 2002

Первый вариант


Значит, если вы сомневаетесь, как написать — так:

чтобы узнать, пуста ли строка, лучше выбрать первый вариант.

Объяснение этому простое: все зависит от способа хранения строк. Вместе с указателем на буфер строки VBA хранит и ее длину. Когда вы вызываете функцию Len, VBA не вычисляет длину строки, а просто считывает ее из переменной. Кроме того, когда вы просите сравнить строку с нулевой строкой, VBA должен сначала создать для вас эту пустую строку в памяти. На это действие требуется время. (Просмотрите также код тестовых процедур Test3a и Test3b в модуле класса OptimizingTests.)

Тест 4: Для инициализации строк вместо " " используйте константу vbNullString.

Обычно для повторной инициализации строки, то есть для ее очистки, используют такой оператор: strltem – ""

В результате создается новая пустая строка, которая копируется в переменную strltem. Однако более эффективным решением является использование константы vbNullString — указателя на пустую строку. Вот как это делается: strltem – vbNullString

VBA не создает новую строку каждый раз, когда вы выполняете такое присваивание; вместо этого он использует свой внутренний указатель на пустую строку, что существенно экономит время. (Просмотрите также код тестовых процедур Test4a и Test4b в модуле класса OptimizingTests.)

Хотя константу vbNullString можно использовать для инициализации строковой переменной, сама по себе она не является пустой строкой (по крайней мере, абсолютно пустой). Данная константа введена в VBA для того, чтобы облегчить вызов функций Windows API, требующих указателя со значением Null (эта концепция важна для программистов С, но не имеет особого смысла в VBA). Когда вы присваиваете строковой переменной значение vbNullString, VBA понимает, что вы хотите присвоить ей указатель Null, и делает что нужно: создает пустую строку.

Комментарии закрыты