2 Boyutlu Diziler ve GetUpperBound fonksiyonu

Katılım
25 Ocak 2009
Mesajlar
110
Excel Vers. ve Dili
Excel-2007 Türkçe
Merhaba arkadaşlar; kitapta gördüğüm bir kodu anlamaya çalışırken kafam daha da karıştı.

Private Sub_Button3_Click

Dim DiziDeger(,) As String={{"ANKARA", "İZMİR", "RİZE"},{"BURSA", "ORDU", "BOLU"}}

Dim i,j As Integer
For i=0 To DiziDeger.GetUpperBound(0)
For j=0 To DiziDeger.GetUpperBound(1)
ListBox1.Items.Add(DiziDeger(i,j))
Next
Next

End Sub

Şimdi arkadaşlar ben anladığım kadarını açıklamaya çalışayım; yanlış anladığım biryer varsa lütfen düzeltin.
Burada iki boyutlu bir dizi mevcut.

0.Sütun 1. Sütun 2.sütun

0.Satır (ANKARA) (İZMİR) (RİZE)

1.Satır (BURSA) (ORDU) (BOLU)

GetUpperBound(0) ile peki tam olarak ne demek istiyor acaba?
Bunu Me.Text=DiziDeger.GetUpperBound(0) şeklinde yazdırınca 1 değeri olduğunu anlıyorum.

Aynı şekilde;

Me.Text=DiziDeger.GetUpperBound(1) şeklinde yazdırınca da 2 değerini buluyorum. Açıklayabilir misiniz lütfen?
 
Katılım
27 Temmuz 2004
Mesajlar
719
Excel Vers. ve Dili
Excel 2003 Tr
Bahsettiğiniz 0 ve 1 değerleri dizinin boyutlarını ifade ediyor 0 ilk boyut için verilen değer, artarak devam ediyor. Sizin dizinizi tekrar tanımlarsak daha iyi anlaşılır.
Dim DiziDeger(,) As String={{"ANKARA", "İZMİR", "RİZE"},{"BURSA", "ORDU", "BOLU"}} bu diziyi ilk başta şöyle tanımlardık.
Dim DiziDeger(0 To 1, 0 To 2) dizilerin index numaraları 0 dan başladığı için ilk boyutun yani 0 boyutunun upperbound değeri 1 oluyor, ikinci boyutun yani 1 boyutunun upperbound değeri de 2 oluyor. Umarım anlatabilmişimdir. Bu arada bunun vba da kullanımı var mı?
 
Katılım
25 Ocak 2009
Mesajlar
110
Excel Vers. ve Dili
Excel-2007 Türkçe
Teşekkürler janveljan yine hızır gibi yardımıma yetiştin çok sağol.



Anladığım kadarıyla 0. boyut burada satırlar oldu ve 1. boyut da sütunlar.



2 satırım olduğu için 0.boyutun 0.elemanı 1.satırım; 0.boyutun 1.elemanı 2.satırım diyebiliriz herhalde.



O yüzden GetUpperBound(0) dediğimizde 0.boyut olan satırların 0.elemanını değil de en son olan 1. elemanını ifade etmiş oluyoruz.



1.boyut da sütunlar oluyor ve sütun sayısı da 0. sütun 1.sütun 2. sütun olmak üzere eleman sayısı 3 olmakla beraber adlandırılışda en son eleman adlandırılışı 2.sütun olduğu için



GetUpperBound(1) ile de 2 yi elde ediyoruz di mi. Umarım doğru anlamışımdır:)
 
Katılım
27 Temmuz 2004
Mesajlar
719
Excel Vers. ve Dili
Excel 2003 Tr
Doğrudur aynen öyle
 
Üst