Format Function()
Kasım 25th, 2009 Esin GÜLTENVbasic kütüphanesinde yeralan Bu fonksiyonla string bilgileri istediğimiz uygun formata çevirebiliriz.
[protect]

[/protect]
Vbasic kütüphanesinde yeralan Bu fonksiyonla string bilgileri istediğimiz uygun formata çevirebiliriz.
[protect]

[/protect]
• Dizi değişkenleri, aynı tipte birçok veriyi bir arada tutmayı sağlar.
• Benzer işlemlerde kullanılan değişkenler bir dizi altında listelenebilir.
• Birden fazla boyutlu olabilir.
• Dizi değişkeni tanımlamak için değişken adından sonra parantez içinde yazılan sayısal değer ile kaç adet değişkenin olması gerektiğini belirtiriz.
[protect]
Örn: Dim personel(4) as integer bu şekilde tanımlanan değişkenlere dizi değişken denir. Örnekte parantez içinde tanımladığım 4 sayısı diğer programlama dillerinde 4 elemanlı dizi değişken anlamına gelebilir bu durum vbasic de farklıdır ve 5 elemanlı dizi değişkeni olarak bilinir. Yani örnekte 5 elemanlı personel dizisi tanımladım. Çünkü vbasic de dizi değişkenlerde ilk elemanın sıra numarası 0 dır. Örneğin 5 elemanlı personel dizi sinin ilk elemanına değer aktarmak istersem;
Personel(0)=”esin” şeklinde ilk elemanın değeri “esin” oldu. Aşağıdaki örnekte diğer elemanlara da değer aktardım ve sonucu mesaj kutusunda gösterdim.

Yukarıdaki örnekte tek tek değer aktardım elemanlara. Aynı şekilde diziyi tanımlarkende elemanlara ilk değer verilebilir.

Dizi değişkenlerinde elemanların farklı tiplerde bilgiler içermesini istiyorsak dizi değişkenin tipini object olarak seçebiliriz.

Tanımlanan bir değişkenin dizi olup olmadığını kontrol etmek istersek vbasic kütüphanesinde bulunan IsArray() metodunu kullanabiliriz. Bu metod geriye boolean tipinde true/false değerlerini gönderir. Değişkenimiz dizi ise True aksi halde geriye false değerini gönderir.

String değişkenler metinsel veri anlamının yanında aynı zamanda char tipinde veriler tutan dizi değişkenlerdir diyebiliriz. Aşağıdaki örnekte string bilgiyi char tipinde dizi değişkenine aktardım. İsim adında string değişkene “esin” degerini verdim. Char tipinde karakter isminde dizi tanımladım ve boyutunu isim değişkeninin uzunluğunu verdim ve 1 eksilttim. Çünkü uzunluk 4 dür fakat dizilerde baslangıc numarası 0 dır bu yüzden 1 eksilttim. Bir döngü oluşturup isim dizisindeki karakterleri char tipindeki karakter dizime aktardım sonrada ekrana tek tek karakter dizisinin elemanlarının değerlerini alt alta yazdırdım.

SetValue Metodu : Dizi değişkenlere SetValue metodu ile de bilgi aktarabiliriz. Bu metod istenilen bilgi ve sıra numarası olmak üzere 2 parametre kullanır.;

GetBytes() Metodu: Parametre olarak aldığı string değişkenin içerdiği bilgiye bağlı olarak byte dizisini boyutlandırır. Aşağıdaki örnekte personel adında string değişkene “esin” değerini verdim. Ve bu bilgiyi byte dizisine aktardım. Aktarırken getbytes metodu ile okudum ve bu metod; bilgiyi byte cinsinden okudu ve dizimizi boyutlandırdı. Sonrada ekrana ascii kodunu ve ascii koda denk gelen karakteri char metodu ile ekrana yazdırdım.

Dizileri tek tanımladığımız gibi birkaç boyutlu da tanımlayabiliriz. Bir işyerinin finans ve muhasebe departmanı çalışanlarını ele alalım. Finans departmanında 3 personel var iken, muhasebe departmanında 4 personel, Toplam departman sayımız 2, maximum bir departmanda calısacak eleman sayısı 6 olsun. Dizimizi tanımlarken Dim dizi(departmansayisi,maxelemansayisi) şeklinde yani (1,5) şeklinde aşağıdaki gibi tanımlama yapacağız.

ReDim ve Preserve: Dizileri tanımladıktan sonra, programın çalışma anında eleman sayısı yeterli olmayabilir. Bu gibi durumda tekrar boyutlandırmaya ihtiyaç duyarız. Yukarıdaki örneğimizde eleman sayımız 6 idi. Çalışma esnasında 10 yapmak istersek bu ifadeyi kullanırız. Fakat bu ifadeyi tek başına kullanırsak dizideki değerler korunmayacaktır. Bu değerleri korumak için preserve anahtar kelimesi ile tekrar boyutlandırırız. Aşağıdaki örnekte dizinin eleman sayısını yeniden belirledim ve 0.elemanın değerini ekrana yazdırdım. Sonuc olarak preserve deyimini kullandığım için 0.eleman nothing gelmedi.

Dizi Özellikleri ve Metodları : Diziler, .net framework içinde tanımlı Array sınıfında yer alır. Ve array sınıfındaki tanımlı özellikleri ve metodları kullanırlar.
.length: Dizinin bütün boyutlarındaki eleman sayısını verir.
Örn: dim personel(5) as string ‘sonuç:6 verir.
Dim personel(2,5) as string ‘ sonuc:18 verir.
.Rank: Personel.rank ‘ sonuc:2 verir.
.GetLength: Index i verilen boyutun kaç elemanlı oldugunu gösteririr.
Personel(getlength(1) ‘sonuc:6 verir.
.Clear:Parametresinde belirtilen dizinin, belirtilen index aralığında temizleme yapar. 2.parametresi ilk index, 3. parametresi son index anlamındadır. Bu metod ile silinen bilgilerde tip string ise boşluk, sayı ise 0, boolean ise false geriye döner.

.Reverse: Parametresinde belirtilen dizinin eleman sırasını tersine çevirir.

.Copy: Dizi elemanlarının içeriklerini başka bir diziye aktarmak için kullanılır 1.parametresi:kopyalanacak dizi, 2.parametresi:hangi diziye kopyalanacak, 3.parametre: kopyalanacak diziden alınacak eleman sayısı. Aşağıdaki örnekte aynı tipten dizi tanımladım. Kaynak diziden 2 eleman aldım ve 3 elemanlı dizi2 dizisine kopyaladım ve dizi2 deki elemanları ekrana gösterdim.

. Dizideki istediğimiz elemanları kopyalamak istersek ;aşağıdaki örnekte dizi adlı diziden 3. elemandan başlayarak hedef dizi2 nin 0. ve 1. elemanlarına kopyala dedim. Dizi değişkenimiz 3 elemanlı olduğu için 1 tane eleman kopyalanacaktır. Ve dizi2 değişkenimizin 0. elemanına aktarılacaktır.
Copy metoduna benzer CopyTo metodu da; kaynak diziyi hedef diziye ilk elemanından itibaren kopyalar. Örn:Dizi.CopyTo(dizi2,0)

.Ubound & GetUpperBound: ubound(dizi) dizinin en son eleman sıra numarasını verir. Dizi.getupperbound(boyut)
.GetLength: Çok boyutlu dizilerde belirtilen boyutun eleman sayısını gösterir.
Dim dizi:(4,5,7) as integer
Dizi.getlength(2) sonuc:8 dir.
.GetLowerBound & .GetUpperBound: lowebound dizinin ilk sıra numarasını upper ise son numarasını verir.
Dim dizi:(4,5,7) as integer
Dizi.getlowerbound(0) sonuc 0 dır. Dizi.getupperbound(0) sonuc 2 dir.
Sıralama(sort): Dizi değişkenlerini A dan Z ye sıralamak için array sınıfının sort metodunu kullanabiliriz.

.BinarySearch Metodu: Dizi içinde bilgi aramak için kullanılır. Aradığımız bilgi dizi elemanlarında yoksa geriye -1 döner, var ise; geriye dizi elemanının sıra numarasını geriye döner. BinarySearch metodunun çalışması için ilk önce sort metodu ile sıralama yapmalıyız. Bu metod sıralanmış dizilerde arama yapar.
.indexOf Metodu: BinarySearch yerine tercih edilebilir. BinarySearch de sort yapmamız gerekirken indexOf metodunda sort yapmak zorunlu değildir. Aradığımız bilgi dizi elemanlarında yoksa geriye -1 döner, var ise; geriye dizi elemanının sıra numarasını geriye döner.

.lastindexOf Metodu: Dizi değişkenlerde içeriği aynı olan var ise; son elemanın sıra numarasını geriye döner.

String.join Metodu: Dizi değişkenlerinin içeriğini birleştirmek için kullanılır. 2 parametreye sahiptir. 1. parametre dizinin elemanlarını belirlediğimiz karakter ile birbirinden ayırır. 2.parametresi ise dizi değişkenimizin ismi. Join metodu dizideki tüm elamanları birleştirilmiş olarak geriye döner.

Dizi değişkenlerde Structure yapısı ile farklı veri tipleri kullanmak:
STRUCTURE: Structure veri tipleri; programcıların tanımladığı veri tipleridir. Birkaç veri tipinin bir araya gelmesiyle oluşan birleşik tipde verilerdir.
Aşağıda hazırladığım örnekte personel isminde structure yapı oluşturdum. Bu yapıda personelin adı ve boyu bulunmakta. Ad değişkeninin veri tipi string iken, boy değişkenin veritipini double yaptım. Listele isminde bir metod hazırladım. Listele Metodunun görevi kendisine parametre olarak gelen dizi değişkenin uzunlugunu alıp elemanlarını ekrana listeler.Bu metoda parametre olarak listeleyeceğim birleşik veri tipine (structure) sahip dizi değişkeni belirtip ekranda göstereceğim. Oluşturduğum personel (structure) yapıdan 2 elemanlı bir kisi isminde dizi oluşturup bunlara değerlerini belirttim. Ve hazırladığım metodla listeledim.

Jagged(düzensiz diziler) : Çok boyutlu dizilerde her boyutun eleman sayısının farklı olması anlamındadır. Aşağıdaki örnekde elemanların değerlerine nasıl ulaşacağımızı görüyoruz. 3 adet integer tipinde dizi hazırladım. Her birinin eleman sayısı biribirinden farklı. Ve bu dizileri çok boyutlu tümdegerler adı altında bir dizi değişkene aktardım aynı zamanda dizimiz 3 boyutlu olmuş olacak. Boyut sayısına göre döngüye girdim ve bu döngü içindeki dizileri 2. bir döngüyle dolaşarak elemanların değerlerini mesaj isminde string değişkene aktarıp ekrana yazdırdım.

[/protect]
Nullable Tipler: Framework 2.0 la birlikte gelen bu özellik integer gibi value tiplerde nothing (null) değerini alabilmesidir.
[protect]
Aşağıdaki örnekte msgbox ile integer tipinde sayı değişkeninin değerini ekrana yazdırdım. Yani sayi değişkenin değerini nothing yaptım fakat sonuc 0 döndürdü. 0 null değildir. Var olan bir değerdir. Bu özellik visual basic e ait bir özelliktir. Sayı tipinde bir değişken tanımladığımızda vbasic derleyicisi sayı tipindeki değişkenin varsayılan değerini 0 olarak atama yapar. Bu durum c# da böyle değildir.

Sayı değişkenini null değer vermek isteseydik;

Yukarıdaki örnekte messagebox ekrana nothing bilgisini getirdi. Null değer alabilecek nitelikte tanımlanan değişkenlerde nothing bilgisini HasValue özelliği ile sorgulayabiliriz. Bu özellik Nullable değişkenlere aittir.

Nothing bilgisini içeren Nullable değişkenlerin Value özelliği okunamaz. Bu yüzden HasValue özelliği ile kontrol edilmelidir.

Matemetiksel işlemlerde değerlerden biri null ise sonuç null dönecektir visual basic derleyicisi bunu anlayıp bizden değerlerin null olup olmadığını kontrol etmemizi ister. Aşağıdaki örnekte görüldüğü gibi ekrana yazdırılan mesaj hata yakalama bloğundan geldi. Bize nesnemizin null değer içerdiğini ve bu nesnemizin bir değere sahip olması gerektiğini bildiriyor.

Nullable sınıfının GetValueOrDefault metodu; Value özelliğine ek olarak null nitelikli değişken, nothing bilgisi içeriyorsa geriye 0 gönderir. Aşağıdaki örnekte sayi2 nothing bilgisi içeriyorken toplama işlemi yaparken GetValueOrDefault metodunu kullandım. Böylece nothing bilgisi içeren değişkenim varsayılan olarak 0 değerini aldı.

Nullable değişkenlerde de IIF kontrol metodu kullanabiliriz. Aşağıdaki örnekte; Bu metodun Birinci parametresi:, sonuc değişkeni nothing bilgisi kontrolü yapılır ve geriye True/False döndürür. İkinci parametresi: 1.parametrenin gönderdiği değer True ise 2. parametreyi yaz.Üçüncü parametresi: 1.parametrenin gönderdiği değer False ise 3.parametreyi yaz.

[/protect]
Parse Metodu() : Framework un Convert sınıfındaki dönüştürme metotlarından farklı olarak çevirme işleminin tersi yapılmak istenebilir. Yani örnek olarak string bilgiyi sayıya dönüştürmek isteyebiliriz.
[protect]
Aşağıdaki örnekte; 2 farklı değişken tanımladım. String değişkene sayı girdim fakat tırnak içinde çünkü string bilgi. Küçük deger giridiğim için int16 yapısının parse metodunu kullandım. Ve ekrana yazdırdım.

Parse metoduyla dönüştürme yaparken dönüştürülecek bilginin tipine ve büyüklüğüne dikkat etmek gerekir. Örneğin ondalık sayı bir bilgiyi int16 ile dönüştürmek istersek hata ile karşılaşırız.
Aşağıdaki örnekte sayıyı nokta ile binlik ayırdım fakat uygulamayı çalıştırdığımda hata ile karşılaşacağız.

Yukarıdaki hatayı çözmek için parse metodunun 2. parametresinin binlik ayracını kullanabiliriz. Aşağıdaki gibi 2.parametrede binlik ayracı kabul edilebilir yaptık. Böylece sayıların arasındaki noktaları dikkate aldı ve hataya neden olmadı.

Aynı şekilde yukarıdaki örnekde nokta ile ayırmıstım. Bunun sebebi kullandığım işletim sisteminin tr olup bölgesel ayarlarına bağlı kalarakdan yazdım. Eğer nokta yerine virgul kullanmış olsaydım hata alırdım. Bu gibi durumlarda parse metodunun 3. parametresi ile bölgesel ayar seçimi yapabiliriz. Yukarıdaki kodu aşağıdaki gibi yaparsak herhangi bir hata ile karşılaşmayacağız.

[/protect]
IsNothing Metodu() : Object bir değişkenin bilgi içerip içermediğini (null olup olmadığını) öğrenmek için kullanırız.
[protect]
Bilgi varsa geriye False, yoksa True döndürür.

IsNumeric Metodu() : Object değişkenin içerdiği bilginin sayı olup olmadığını kontrol eder. Bilgi sayı ise True aksi halde False döndürür.

[/protect]
Susam Sokağı TRT'de yeniden başlıyormuş :) http://www.medyatava.com/haber.asp?id=63116 [pic] http://ff.im/hdZyk #
a not official project plan for microsoft products released by an ex-MS emp.. 07/11 is support start date for Windows8 http://bit.ly/aakzpM #
WF Migration Kit CTP 1 - http://wf.codeplex.com/releases/view/41401 #
Sitemde suan 5 Ziyaretci, 0 bot bulunmaktadir.
visualbasic namespace inde bulunmakta olup, c# da kullanmak istiy …
C# da nasıl oluyor bu? hangi isim uzayının altında. …
Uzun süredir başıma belaydı.Bu beladan sayenizde kurtuldum ve …
Süpersiniz emeğinize yüreğinize sağlık …
devamında gridde göstermek istersek; datagrid1.datasource=ds.t …