2009-05-01 19 views
5

if strValue = 'Hola', entonces ¿cuál sería el valor de (strValue <> 'HELLO') ser?¿La comparación de cadenas VB6 es insensible?

+1

¿No sería más fácil, y más cierto, escribir una prueba increíblemente simple para esto? –

+0

Carl, estaba a punto de decir eso. La mayoría de las personas no tienen un intérprete de VB6, pero obviamente el OP sí lo tiene. :) –

+0

Aunque VBA se comporta de la misma manera y la mayoría de la gente tiene eso ... –

Respuesta

12

Depende de cómo utilice la instrucción Option Compare. Puede funcionar de cualquier manera.

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

Aquí hay un VB6 string tutorial.

11

No, es sensible a mayúsculas y minúsculas (al menos de forma predeterminada, querrá comprobar: si Option Compare está configurado en Binario o no configurado, distingue entre mayúsculas y minúsculas; si está configurado para texto, no distingue entre mayúsculas y minúsculas).

Lcase() ambos lados si prefiere que no distinga entre mayúsculas y minúsculas.

La razón por la que prefiero esta opción de cambio/configuración es porque alguien que mira el código no tiene que ir a cazar para ver qué opción de comparación se establece para entender cómo se comportará, pero es casi seguro más lento (no significativamente a menos que lo estés llamando repetidamente) y algunos podrían verlo como no particularmente limpio.

+1

o UCase haría lo mismo. –

+6

O use StrComp (strVal1, strVal2, vbTextCompare) – Tomalak

+0

Puede valer la pena decir que la razón por la que hago esto en lugar de usar la opción comparar es que prefiero que sea explícita en la comparación en lugar de que alguien que lea el código encuentre algo que modifique la comportamiento predeterminado –

1

El documentation es bastante claro

Si utiliza Option Compare Text en la sección Declaraciones de un módulo [la parte superior del archivo], las comparaciones de cadenas no son mayúsculas y minúsculas.
Si usa Option Compare Binary, las comparaciones distinguen mayúsculas y minúsculas.
Si usa Option Compare Database [solo válido en Access VBA], el método de comparación lo establece la base de datos actual.

+0

Hola a quien revocó esto.¿Te importa dejar un comentario? – MarkJ

Cuestiones relacionadas