2009-05-01 8 views
5

strValue = 'Merhaba' ise (strValue <> 'HELLO') değeri ne olurdu?VB6 dizgi karşılaştırma durumu duyarsız mı?

+1

Daha kolay - ve daha kesin - bunun için inanılmaz derecede basit bir test yazmak daha kolay olmaz mıydı? –

+0

Carl, Bunu söylemek üzereydim. Çoğu insanın etrafında bir VB6 tercüman yok, ama OP açıkça öyle. :) –

+0

VBA aynı davranıyor olmasına rağmen ve çoğu insanın sahip olduğu ... –

cevap

12

Option Compare ifadesini nasıl kullandığınıza bağlıdır. Her iki şekilde de çalışabilir.

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

İşte bir VB6 string tutorial. Bir modülünün [dosyanın üst] Declarations bölümünde Option Compare Text kullanırsanız

11

Hayır, büyük/küçük harf duyarlı (varsayılan olarak en azından kontrol etmek isteyeceğiniz halde - Seçenek Karşılaştırması İkili olarak ayarlanmışsa veya ayarlanmadıysa o zaman büyük/küçük harfe duyarlıdır, eğer metne ayarlanırsa büyük/küçük harfe duyarlı değildir).

Lcase() Her iki tarafı da büyük harf duyarsız olsaydınız.

Bunu değiştirmeyi/ayarlama seçeneğini tercih etmemin sebebi, kod arayan birinin, nasıl davranacağını anlamak için hangi seçeneğin nasıl ayarlandığını görmek üzere avlanmak zorunda kalmamasıdır, ancak bu, neredeyse kesinlikle daha yavaştır (Tekrar tekrar aramadıkça önemli değil) ve bazıları özellikle düzgün görünmeyebilir.

+1

ya da UCase aynı şeyi yapar. –

+6

Veya StrComp (strVal1, strVal2, vbTextCompare) kullanın – Tomalak

+0

Kullanmak yerine seçeneği karşılaştırmak yerine bunu yaptığımı söylemem, kodun okunmasını isteyen birisini bulmaktan ziyade, karşılaştırmada açık yapmayı tercih etmem olabilir. varsayılan davranış. –

1

documentation

oldukça açıktır, dize karşılaştırmaları harfe duyarlı değildir.
Option Compare Binary kullanırsanız, karşılaştırmalar büyük/küçük harfe duyarlıdır.
Option Compare Database [yalnızca Access VBA'da geçerlidir] kullanırsanız, karşılaştırma yöntemi geçerli veritabanı tarafından ayarlanır.

+0

Merhaba, bunu kandıran kişi.Yorum bırakmak ister misin? – MarkJ