strValue = 'Merhaba' ise (strValue <> 'HELLO') değeri ne olurdu?VB6 dizgi karşılaştırma durumu duyarsız mı?
cevap
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
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.
ya da UCase aynı şeyi yapar. –
Veya StrComp (strVal1, strVal2, vbTextCompare) kullanın – Tomalak
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ış. –
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.
Merhaba, bunu kandıran kişi.Yorum bırakmak ister misin? – MarkJ
Daha kolay - ve daha kesin - bunun için inanılmaz derecede basit bir test yazmak daha kolay olmaz mıydı? –
Carl, Bunu söylemek üzereydim. Çoğu insanın etrafında bir VB6 tercüman yok, ama OP açıkça öyle. :) –
VBA aynı davranıyor olmasına rağmen ve çoğu insanın sahip olduğu ... –