- Optimizasyon -
  - Ana Sayfa
  - Rastgele İpucu
  - Genel Optimizasyon
  - String Optimizasyonu

- Makale -
  - XP Stili Görünümü
  - Package&Deployment     Wizard Sorunları
  - InnoSetup ile Kurulum     Paketi Hazırlama


- Ayın İpucu -
Kontrollere veri gönderirken, onları gizleyin. Örneğin, bir listbox'ta 1000 tane string göstermek istiyorsunuz. Önce, 'Visible' özelliğini 'false' yapın, stringleri ekleyin, ve tekrar 'true' yaparak görünür hale getirin. Böylece listbox'ın her eklemede kendini yenilemesine gerek kalmayacak ve daha hızlı işlem yapacaktır. İşlem bittikten sonra kendisini bir kere yenilemesi yeterli olacaktır.
Visual Basic Optimizasyonu

Ana Sayfa > String Optimizasyonu > Bölüm 4

Bölüm 1 > Bölüm 2 > Bölüm 3

String Değerlerde Karşılaştırma Yapmak

String değerleri birbiri ile kıyaslamak umduğunuzdan daha uzun sürebilir. İşte işinize yarayacak birkaç ipucu:

İlk harfi karşılaştırma

İşte optimize edilmemiş iki yöntem:

If Left$(Text$, 1) = "A" Then

ve

Select Case Left$(Text$, 1)
Case "A"
Case "B"
End Select


Ve işte daha hızlı alternatifleri:

If LenB(Text$) <> 0 Then
If AscW(Text$) = 65 Then

If LenB(Text$) <> 0 Then
Select Case AscW(Text$)
Case 65 ' AscW("A")=65
Case 66
End Select


Left$() yerine AscW() fonksiyonunu çağırmak ve sonra kıyaslamak daha hızlıdır. Ayrıca boş bir string üzerinde AscW() uygulamak, hata oluşmasına neden olur. Bu olasılığı da düşünerek önce LenB() ile kontrol etmeliyiz.

Diğer taraftan Select Case yapısı programınıza daha fazla artı sağlayacaktır.

Ortadaki bir harfi karşılaştırma

Yukarıdaki ipucuna benzer bir şekilde, bu da ortada bir yerdeki bir harfi karşılaştırmak için kullanılır.

If AscW(Mid$(Text$, index)) = 65 Then

Burada unutulmaması gereken, index değerinin Len(Text$) değerinden küçük olması şartıdır. Aksi halde bir hata ile karşılaşırsınız. Bu durum sağlanırsa, Mid$(, index, 1) yerine Mid$(, index) çağırmak daha faydalıdır.

Binary değer karşılaştırma

Kullanabildiğiniz her yerde binary karşılaştırmayı kullanmalısınız. Eğer küçük/büyük karakter duyarsız StrComp() işnizi görüyorsa, onun yerine daha hızlı olan şu halini kullanabilirsiniz.

StrComp(Text1$, "abc", vbTextCompare) ' Daha Yavaş
StrComp(LCase$(Text1$), "abc", vbBinaryCompare) ' Daha Hızlı

InStrB() ile karşılaştırma

InStr fonksiyonu, bir string değerini bir diğeri içerisinde bulmaya yarayan faydalı bir fonksiyondur. Diğer taraftan InStrB versiyonunda bir optimizasyon söz konusudur. Eğer sadece, içinde geçip geçmediğini kontrol edecek, nerede olduğunu önemsemeyecek iseniz, şu kodu kullanabilirsiniz:

If InStrB(Text$, SearchFor$) <> 0 Then

Ancak InStrB() fonksiyonu kavraması zor bir fonksiyondur. Eğer tam olarak nasıl işlediği öğrenilmeden kullanılırsa hatalara neden olabilir.

Like ile karşılaştırma

Like operatörü hızlı çalışan bir çözüm değildir. Bunun yerine alternatif yöntemleri deneyebilirsiniz. Aşağıda kullanımına örnek verilecektir.

If Text$ Like "*abc*" Then -> If InStrB(Text$, "abc") <> 0 Then

Eğer InStrB() kullanımı zor geliyor ise InStr() fonksiyonunu deneyebilirsiniz.

Bölüm 2 > Bölüm 3 > Bölüm 4
 

Faydalı Linkler
 > vbnet.mvps.org
 > msdn.microsoft.com
 > vbasicmaster.com
 > www.freevbcode.com
 > planet-source-code.com
 > www.vbturk.net
 > www.mutasyon.net
 
Visual Basic Optimizasyonu Sitesi en iyi 800x600 çözünürlükte görüntülenebilmekte
ve tüm browser'larda sorunsuz çalışmaktadır.