|
Dictionary kelime manası olarak sözlük manası taşıyor. Bir anlamda doğru, çünkü bize verilen her anahtar değere karşılık gelen bir değer döndürüyor.
Dictionary nesnesi bir nevi array yani dizilere benziyor. Farkı ise dizilerde her elemanı sıra numarası ile çağırırken dictionaryde bir anahtar kelime ile çağırıyoruz. Bunu şöyle özetleyebiliriz. Dizilerde bir apartmanda oturanları tarif ederken 1 numarada Ahmet bey, 2 numarada Mehmet bey ...vs. şeklinde ifade ediyoruz. Ancak dictionary nesnesinde çelik kapılı evde Ahmet bey, sarı boyalı kapılı evde Mehmet bey ...vs.şeklinde ifade ediyoruz.Çağırırken de sarı kapılı evde kim vardı şeklinde sorguluyoruz.
Lafı çok fazla uzatmadan dictionary nesnesinin kullanımını örnekler üzerinde inceleyelim.
<% ´Öncelikle Uyeler isminde bir dictionary nesnesi oluşturuyoruz. Dim Uyeler Set Uyeler = CreateObject("Scripting.Dictionary")
´Uyeler isminde bir sözlüğümüz var artık. Ancak sözlüğümüz boş. Bu sözlüğümüze yeni değerler ekleyelim. Uyeler.Add "maksu","Metin Aksu" Uyeler.Add "vbsturk","ASP için VBScript"
Response.Write Uyeler.Item("maksu") ´Çıktısı "Metin Aksu" olur. %>
Burada maksu ve vbsturk anahtarımız Metin Aksu ve ASP için VBScript ise bu anahtarların değerleridir.Add konusunu dictionary nesnesinin metodları kısmında tekrar inceleyeceğiz. Şimdi dictionary nesnesinin özelliklerine geçelim.
Dictionary Nesnesi Özellikleri
CompareMode
Bu özellik nesne içinde arama yada tarama yaparken anhtarların nasıl uyum sağlayacağını belirler.
<% Uyeler.CompareMode = Karşılaştırma Kodu %>
Karşılaştırma Kodları
Sabit Değer Tanım vbBinaryCompare 0 İkili karşılaştırma(birebir uyum) vbTextCompare 1 Text karşılaştırma(küçük büyük harf uyumu olmaksızın)
Karşılaştırma kodu kısmına sabitin ismini yada değerini yazabilirsiniz.
Count
Dictionary nesnemizin içinde kaç tane anahtar değer çiftinin olduğunu bize verir.
<% Response.Write Uyeler.Count %>
Çıktımız 2 olur. Çünkü biz yukarda nesnemize 2 değer ekledik.
Countu nerede kullanabileceğimizi örnekle görelim.Yukarda ki örneğimizle devam edelim.
<% Dim Uyeler Set Uyeler = CreateObject("Scripting.Dictionary") Uyeler.Add "a","Metin Aksu" Uyeler.Add "b","Semih Turna" Uyeler.Add "c","Selim Topallıoğlu" Uyeler.Add "d","Melih Sakarya"
´nesnemizdeki tüm anahtarları Anahtarlar isimli bir değişkene atıyoruz. Anahtarlar değişkenimiz böylece dizi değişken oluyor.Keys metodu da sonra incelenecek. Anahtarlar = Uyeler.Keys For i = 0 To Uyeler.Count-1 Response.Write Anahtarlar(i) & "<br>" Next %> Bu şekilde Uyeler nesnemizdeki tüm anahtarları ekrana yazdırıyoruz.
Item
Bu özellik verdiğimiz bir anahtar değer ile koleksiyondaki bir maddenin değerini alıp getirir. <% Response.Write Uyeler.Item("a") %> Çıktısı "Metin Aksu" olur.
Bu özellik ile sözlüğümüzdeki bir maddenin değerini de değiştirebiliriz. <% Uyeler.Item("a") = "Ahmet San" Response.Write Uyeler.Item("a") %> Bu sefer çıktımız "Ahmet San" olur.
Eğer çağırdığımız anahtar mevcut değilse çağırdığımız anahtar ile yeni bir anahtar oluşturulur ve değeri boş bırakılır.Yani siz sanki Add ile yeni bir değer eklemişsiniz gibi olur.Ama içeriği boş olur. Eğer siz olmayan bir anahtarla değerini değiştirmek amaçlı koleksiyonumuzdan bir madde çağırırsanız bu anahtara sahip bir madde oluşturulur ve içeriği sizin verdiğiniz değer olarak belirlenir.
<% Response.Write Uyeler.Item("h") %> Derseniz anahtarı "h" olan yeni ve boş bir madde oluşturmuş olursunuz. <% Uyeler.Item("z") = "Deniz Seki" %> Bu durumda da "z" anahtarına sahip bir madde oluşturulur ve değeri "Deniz Seki" olarak belirlenir. Yani <% Uyeler.Add "z","Deniz Seki" %> ile <% Uyeler.Item("z") = "Deniz Seki" %> aynı kapıya çıkar.
Key
Bu özellik bir anahtarın değerini değiştirmeden anahtar ismini değiştirmemizi sağlar.
<% Uyeler.Key("b") = "t" Response.Write Uyeler.Item("t") %> Bu şekilde "b" anahtarına sahip maddemiz yok olur onun yerini "t" anahtarlı maddemiz alır. Ama bu t anahtarlı maddemizin değeri eski "b" anahtarı ile aynıdır.Çıktısı "Semih Turna" olur.
Eğer değiştirmek istediğiniz anahtar mevcut değilse öğe bulunamadı hatası alırsınız.
Dictionary Nesnesi Metodları
Add
Bu metod ile dictionary nesnemize yeni bir anahtar ve değer çifti eklemiş oluruz. <% NesneAdi.Add "AnahtarDegeri","MaddeDegeri" %> Yukarda zaten yeterince açıklayıcı örnekler verdiğimiz için bu konuya daha fazla girmiyorum.
Exists
Bu metod bir dictionary nesnesinde bir anahtarın olup olmadığını belirlemek için kullanılır. <% Uyeler.Exists("a") ´True değeri döndürür. Uyeler.Exists("j") ´False değeri döndürür.
If Uyeler.Exists("a") Then Response.Write "Anahtar var" Else Response.Write "Anahtar yok" End If %>
Keys
Bu metod bir dictionary nesnesinde ki anahtarların hepsini getirmek için kullanılır. Bu şekilde bu anahtarları bir dizi değişkene atayabiliriz. <% Anahtarlar = Uyeler.Keys For i = 0 To Uyeler.Count-1 Response.Write Anahtarlar(i) & "," Next %> Çıktısı a,b,c,d olur.
Items
Bu metod bir dictionary nesnesinin maddelerinin hepsini getirmek için kullanılır. Keys metodu anahtar isimlerini getiriyordu. Items ise bu anahtarların içerdikleri değerleri getirir. <% Degerler = Uyeler.Items For i = 0 To Uyeler.Count-1 Response.Write Degerler(i) & "," Next %> Çıktısı Metin Aksu,Semih Turna,Selim Topaloğlu,Melih Sakarya olur.
Remove
Bir dictionary nesnesinden bir anahtar/değer çiftini çıkarmaya yarar.
<% madde = Uyeler.Remove("a") ´yada sadece Uyeler.Remove("a")
Degerler = Uyeler.Items For i = 0 To Uyeler.Count-1 Response.Write Degerler(i) & "," Next %> Bu sefer çıktı "a" anahtarını ve içerdiği değer olan "Metin Aksu"yu içermez.
RemoveAll
Bir dictionary nesnesinde ki tüm anahtar/madde çiftlerini tamamen çıkarmaya yarar. <% Uyeler.RemoveAll %> Yani nesnemizi öldürmeden içeriğini sıfırlamış oluruz.
Konumuz burda bitti. Umarım aklınızda soru kalmamıştır.
(findikkurdu.com)
|
 |