Является ли сравнение строк VB6 нечувствительным к регистру? - PullRequest
5 голосов
/ 02 мая 2009

если strValue = 'Hello', каким будет значение (strValue <> 'HELLO')?

Ответы [ 3 ]

12 голосов
/ 02 мая 2009

Это зависит от того, как вы используете оператор Option Compare . Это может работать в любом случае.

Option Compare Text 'Case insensitive'
Option Compare Binary 'Case sensitive (default)'

Вот учебник VB6 .

11 голосов
/ 02 мая 2009

Нет, он чувствителен к регистру (по крайней мере, по умолчанию, хотя вы захотите проверить - если Option Compare установлен на Binary или не задан, то он чувствителен к регистру, если он установлен на текст, то он нечувствителен к регистру).

Lcase () обе стороны, если вы предпочитаете, чтобы регистр не учитывался.

Причина, по которой я предпочитаю это изменению / настройке параметров сравнения, заключается в том, что кто-то, смотрящий на код, не должен искать, для чего настроено сравнение, чтобы понять, как он будет себя вести, НО это почти наверняка медленнее (не значительно, если вы не называете это неоднократно), и некоторые могут посчитать это не особенно аккуратным.

1 голос
/ 15 февраля 2012

Документация довольно ясна

Если вы используете Option Compare Text в разделе объявлений модуль [верх файла], сравнения строк не чувствительны к регистру.
Если вы используете Option Compare Binary, сравнения будут выполняться с учетом регистра.
Если вы используете Option Compare Database [, действительный только в Access VBA ], метод сравнения устанавливается текущей базой данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...