C-BASİC

Visual Basic Nesnelerinin Ortak Özellikleri

  • Görsel Özellikler : Nesnenin görselliği ile ilgili özelliklerdir.

    Alignment : Nesne içindeki metnin yatay hizalama şeklini içerir.

    BackColor : Nesnenin arkaplan rengini içerir.

    Enabled : Nesnenin erişilebilirliğini belirleyen özelliktir.

    Font : Nesne üstündeki metnin yazı biçimini yapıandıran özelliktir.

    MousePointer : Mouse’un ekran üstündeki şeklini belirler. önceden tanımlanmış şekillerin yanısıra 99-Custom özelliği ile istenilen cursor şeklini elde edebilirsiniz.

    MouseIcon : Mouse’un ekran üstündeki özel (Custom) şeklini içeren özelliktir.

    TabStop : Kullanıcı Tab tuşunu kullandığında odağın nesne üstünde durup durmayacağını belirler.

    TabIndex : Nesnenin Tab sırasını kontrol eder.

    Tag : Gerektiğinde kullanılması amacıyla programcı için açıklama yeri.

    ToolTipText : Nesnenin açıklamasını kullanıcıya göstermek amacı ile kullanılan TollTip’lerin yazıldığı özelliktir.

    Diğer Özellikler :

    Index : Nesnenin nesne dizileri içindeki numarasıdır.

  • Değişkenler  
    Değişkenler içlerinde veri saklayan programlama arçlarıdır. Bir programı geliştirirken programcı iki türlü veri kullanır bunlar karakter dizileri ve sayısal verilerdir. Bu da bir programlama dilinde verileri depolayan araçları ikiye ayırmayı zorunlu kılmıştır. Diğer programlama dillerinde olduğu gibi Visual Basic’te de veri depolayan araçlar yani değişkenler ikiye ayrılırlar. Bunlar : Karakter dizileri ve sayısal değişkenlerdir. Değişkenlerle ilgili daha ayrıntılı bilgi için  aşağıdaki tabloyu inceleyiniz.
    Karakter  Dizileri
    String
    Karakter Dizisi
     n Byte
    Sayısal  Değişkenler
    Byte
    0-255 arası tam sayı
    1 Byte
    Integer
    Kısa tam sayı
    2 Byte
    Long
    Uzun tam sayı
    4 Byte
    Single
    Kısa rasyonel sayı
    4 Byte
    Double
    Uzun rasyonel sayı
    8 Byte
    Currency
    19 haneli rasyonel sayı
    8 Byte
    Diğer
    Boolean
    True/False mantıksal tip
    1 Byte
    Variant
    Her türlü veriyi depolayan değişken tipi
    8 Byte

Değişken Tanımlama

Visual Basic’te herhangi bir olay veya alt programda geçerli olacak bir değişkeni tanımlamaya gerek yoktur. Kullanılan değişken olay veya alt program çalışmaya başladığında otomatik olarak Visual Basic tarafından tanımlanır. Bu yöntem ile program geliştirmek kolay olmasının yanısıra büyük uygulamalarda yetersiz kalmaktadır. Bu yöntemin bir dezavantajı ise kod yazımı sırasında programcının yapacağı değişkenlere bağlı yazım (syntax) hatalarını derleyicinin farkedememesidir. Visual Basic Code Window içindeyken en üste Option Explicit yazıldığında Visual Basic derleyicisi kullanılan bütün değişkenlerin tanımlanmasını şart kılar. Visual Basic’te üç türlü değişken tanımlama yöntemi vardır bunlar;

Dim : Kullanıldığı ortamda geçerliliğini sürdüren değişkenler tanımlamak için kullanılır. Değişkenler Dim ile bir olayın içinde tanımlandığında sadece o olay içinde geçerli olurlar. Formun veya Modülün General Declarations bölümünde tanımlanan değişkenler tanımlandıkları form veya modülün içindeki bütün olay, alt program ve fonksiyonlarda geçerli olurlar. Aşağıdaki örnekte x değişkeni Dim deyimi ile tanımlanan bir Integer’dır. Kullanıcı Command1 isimli düğmeye bastığında doğar, sadece Command1_Click() olayı içinde geçerlidir ve olay bittiğinde ölür.

Private Sub Command1_Click()

Dim x as Integer

x=3

End Sub

Static : Kullanıldığı ortamda geçerliliğini sürdüren ve alt programın içinde olduğu form veya modül bellekten silinene kadar yaşamını sürdüren değişkenler tanımlamak için kullanılır. Aşağıdaki örnekte x değişkeni Static deyimi ile tanımlanan bir Integer’dır. Kullanıcı Command1 isimli düğmeye ilk basışında doğar, olay bitti ğinde uyur ve içindeki değeri saklar, sadece Command1_Click() olayı içinde geçerlidir ve Command1 isimli CommandButton’ın üstünde olduğu form bellekten silindiğinde ölür.  Aşağıdaki örnekte düğmeye üç kez basıldığında Label1 nesnesi ekranda 9 gösterecektir.

Private Sub Command1_Click()

Static x as Integer

x=x+3

Label1.Caption=x

End Sub

Redim : Esnek boyutlu dizi değişkenler tanımlamak veya tanımlanmış bir dizi değişkenin boyutlarını değiştirmek için kullanılır. Ayrıntılı bilgi sonraki bölümlerde verilecektir.

Global : Sadece Modüllerin General Declarations bölümünde kullanılabilir. Projenin heryerinde geçerli olan, program çalıştığında doğan ve program bellekten silindiğinde ölen değişkenler tanımlamak için kullanılır.

Not: Global tanımlanmış x değişkeniniz varsa ve herhangi bir olayın, alt programın veya fonksiyonun içinde de bir x değişkeni tanımlarsanız. O olayın, alt programın ve fonksiyonun içinden global olan x değişkenine erişemezsiniz.

Değişken dönüşüm fonksiyonları

CStr() : Herhangi bir veri tipini String veri tipine dönüştürmek için kullanılır.

CByte() : Herhangi bir veri tipini Byte veri tipine dönüştürmek için kullanılır.

CInt() : Herhangi bir veri tipini Integer veri tipine dönüştürmek için kullanılır.

CLng() : Herhangi bir veri tipini Long veri tipine dönüştürmek için kullanılır.

CSng() : Herhangi bir veri tipini Single veri tipine dönüştürmek için kullanılır.

CDbl() : Herhangi bir veri tipini Double veri tipine dönüştürmek için kullanılır.

Str() : Herhangi bir sayı veri tipini String veri tipine dönüştürmek için kullanılır.

Int() : Herhangi bir sayı veri tipini tam sayıya dönüştürmek için kullanılır.

Val() : Herhangi bir String veri tipini sayıya dönüştürmek için kullanılır.

String İşleme Fonksiyonları

Trim() : Bir String ifadenin başında ve sonunda bulunan boşlukları siler.

LTrim() : Bir String ifadenin başında bulunan boşlukları siler.

RTrim() : Bir String ifadenin sonunda bulunan boşlukları siler.

Mid(String,start,lenght) : Bir String ifadenin bir bölümünü kesmek için kullanılır. Örneğin Mid(“ABCDEF”,3,2)=”CD”

Right(String,Lenght) : Bir String ifadenin sondan istenilen sayıda karakterinin kesilmesi anlamına gelir. Örneğin Right(“ABCDEF”,3)=”DEF”

Left(String,Lenght) : Bir String ifadenin baştan istenilen sayıda karakterinin kesilmesi anlamına gelir. Örneğin Left(“ABCDEF”,3)=”ABC”

Yeni Değişken Türü Oluşturma (Type)

Mevcut kullanılan değişken türleri yetersiz kaldığında veya yapılan çalışmayı sadeleştirmek istendiğinde yeni bir değişken türü tanımanır. Yeni değişken türü bir veya birden fazla mevcut değişken türlerinde tanımlanmış alt değişkenlerden oluşur. Bu işlemi gerçekleştirebilmek için aşağıdaki yazım kuralına uygun Type komutu kullanılır. Type komutu sadece modül içinde kullanılabilir. Form içinde kullanılamaz.

Type [Yeni Değişken Türü Adı]

AltDeğişken1 As MevcutTür

AltDeğişken2 As MevcutTür

.

.

AltDeğişken3 As MevcutTür

End Type

Yeni oluşturulmuş bir değişken türü programın her yerinde diğer değişkenlerden farksız olarak kullanılabilirler.

Not: Rasgele erişimli dosyalarda kullanılacak olan bir değişken türü içinde tanımlanan String türünde alt değişkenlerin uzunlukları aşağıdaki örnek koddaki belirtilmelidir.

Type Ogrenci

Adı As String * 25

Soyadı As String * 25

Yaşı As Integer

AnneAdı As String *25

BabaAdı As String * 25

End Type

  • Operatörler ve Bağlaçlar 
=  Atama Operatörü  x=3
+  Toplama Operatörü  x=y+5
 Çıkarma Operatörü  x=y-3
*  Çarpma Operatörü  x=y*3
/  Bölme Operatörü  x=y/2
^  Üs Operatörü  x=y^2
>  Mantıksal Büyüktür Operatörü  x>5
<  Mantıksal Küçüktür Operatörü  x<3
<>  Mantıksal Farklı Operatörü  x<>6
Not  Mantıksal Değil Bağlacı  Not x>5
And  Mantıksal VE Bağlacı  x>3 And y<>2
Or  Mantıksal VEYA Bağlacı  x=5 OR y<9
  • If-Then-Else  

Nesne temelli programlamada program akışı sadece olaylar ile yapılmaz. Olaylar içinde yazılan kodun mantık çerçevesinde yönlendirilmesi gereklidir. Visual Basic’te büyük çoğunlukla yönlendirme işlemi if blokları ile gerçekleştirilir. If bloklarının yazım (syntax) kuralı aşağıdadır.

If  Şart1  Then     ‘Blok Başlangıcı

…………. ‘Şart1 doğru ise yapılacak işlem

ElseIf  Şart2 Then

……………. ‘Şart1 Yanlış ve Şart2 doğruysa yapılacak işlem

ElseIf  Şart3 Then

…………… ‘Şart1 ve Şart2 Yanlış Şart3 doğruysa yapılacak işlem

ElseIf  Şart4 Then

……………

ElseIf Şart(n) Then

…………… ‘Bütün Şartlar Yanlış ve Şart(n) doğruysa yapılacak işlem

Else

……………  ‘Bütün Şartlar Yenlış ise yapılacak işlem

End If        ‘Blok Sonu

If  bloklarını kullanırken programcının yukarıdaki gibi Else veya ElseIf alt If bloklarını kullanma zorunluluğu yoktur. Aşağıdaki örnekleri iyice inceleyiniz.

If x=8 Then

……………. ‘ x=8 ise

End If

‘————————————————————–

If x=8 Then

……………. ‘x=8 ise

ElseIf x=9 Then

……………. ‘x=8 değil ve x=9 ise

End If

‘————————————————————–

If x=8 Then

……………. ‘x=8 ise

Else

……………. ‘x=8 değilse

End If

‘————————————————————–

If x=8 Then

……………. ‘x=8 ise

ElseIf x=9 Then

……………. ‘x=8 değil ve x=9 ise

Else

……………. ‘ x=8 değilse ve x=9 değilse

End If

  • Select Case 
    “Select case” komutu ikiden fazla durumun söz konusu olduğu şartlarda program akışını yönlendirmek için  kullanılan yönlendirme komutudur. “Select Case” komutu durum değişkenine göre hareket eder. Aşağıda “Select Case” komutunun yazım kuralı açıklanmıştır.
    Select Case [Durum Değişkeni]

    Case [Durum1]

    ……………    ‘ Durum1 oluşursa çalışacak kod

    Case [Durum2],[Durum3]

    ……………    ‘ Durum2 veya Durum3n oluşursa çalışacak kod

    Case Is > [Durum4]

    ……………    ‘ Durum değişkeni Durum4’den büyükse

    ‘ çalışacak kod

    Case Is < [Durum5]

    ……………    ‘ Durum değişkeni Durum5’den küçükse

    ‘ çalışacak kod

    Case Else

    ……………    ‘ Yukarıdaki durumların hiçbiri gerçekleşmiyorsa

    ‘ çalışacak kod

    End Select
  • Sıralı Dosya Erişimi 
  • Output : Sıralı erişim dosya açma yöntemlerinden biridir. Sabit disk üstünde var olmayan bir dosyayı oluşturur. Var olan dosyaların içeriğini silerek açar. Yazım kuralı aşağıdaki gibidir.

Open [Dosya Yolu] For Output As #[Dosya No]

[Dosya Yolu] : Açılacak dosyanın sabit disk üstündeki adresidir. Türü String’dir.

[Dosya No] : Açılacak dosyaya program içinde erişilirken kullanılan 0-255 arasındaki sayıdır. Farklı iki dosya için aynı sayı kullanılamaz

Dosyaya bilgi yazmak için Print# veya Write# komutları kullanılır.

Print #[Dosya No], [String Değişken]

Write #[Dosya No], [String Değişken]

  • Append : Sıralı erişim dosya açma yöntemlerinden bir diğeridir. Dosyanın içindeki var olan satırların sonuna satır eklemek için kullanılan yöntemdir. Açılmak istenen dosya sabit disk üstünde yoksa hata verir. Yazım kuralı aşağıdaki gibidir.

Open [Dosya Yolu] For Append As #[Dosya No]

[Dosya Yolu] : Açılacak dosyanın sabit disk üstündeki adresidir. Türü String’dir.

[Dosya No] : Açılacak dosyaya program içinde erişilirken kullanılan 0-255 arasındaki sayıdır. Farklı iki dosya için aynı sayı kullanılamaz.

Dosyaya bilgi yazmak için Print# veya Write# komutları kullanılır.

Print #[Dosya No], [String Değişken]

Write #[Dosya No], [String Değişken]

  • Input : Sıralı erişim dosya açma yöntemlerinden biridir. Sadece okuma amaçlı dosya açılırken kullanılır. Dosyayı Input şeklinde açabilmek için dosyanın sabit disk üstünde var olması gerekmektedir.yapılan her okuma işleminde yeni okuma için otomatik olarak bir alt satıra konumlanılır. Aksi halde hata oluşur. Yazım kuralı aşağıdaki gibidir.Open [Dosya Yolu] For Append As #[Dosya No]

    [Dosya Yolu] : Açılacak dosyanın sabit disk üstündeki adresidir. Türü String’dir.

    [Dosya No] : Açılacak dosyaya program içinde erişilirken kullanılan 0-255 arasındaki sayıdır. Farklı iki dosya için aynı sayı kullanılamaz .

    Dosyadan okuma yapmak için Input# veya Line Input# komutları kullanılır.

    Input #[Dosya No], [String Değişken]

    Line Input #[Dosya No], [String Değişken]

  • Rasgele Dosya Erişimi 
Rasgele dosya erişim yöntemini kullanabilmek için öncelikle dosya içinde saklanacak veriler modellenmelidir. Veriler modellendikten sonra herbir veri grubu için bir değişken türü oluşturulmalıdır. Değişken türü oluşturmak için Type komutu kullanılır.
Rasgele erişimli dosyanın sıralı erişimli dosyalardan program kodlama açısından en büyük farkı dosyaya yazma ve okuma için tek bir yöntem kullanılmasıdır ve sabit disk üstünde bulunmayan bir dosyayı oluşturmak işlemininde bu yöntem tarafından yapılmasıdır. Rasgele erişimli dosyalarda kayıtların uzunluğu sabit olduğundan dosya içindeki her kaydın byte cinsinden adresi bellidir. Buyüzden dosya içindeki istenilen kayda ait bilgiler direkt olarak değiştirilebilir. Bu özellik bu yöntemin en önemli özelliğidir. Rasgele Erişimli dosya kullanma yönteminde dosya açma işlemi aşağıdaki şekilde kullanılır.

Open [Dosya Adresi] For Random As #[Dosya No] Len=[Kayıt Uzunluğu]

[Dosya Adresi] : Türü String’tir. Açılacak olan dosyanın sabit disk üstündeki adresini belirtir.
[Dosya No] : Türü Integer’dır. Açılacak dosyaya daha sonra program içinde bu dosyayı temsil edecek olan ve başka bir dosya tarafından kullanılmayan bir dosya numarasıdır.
[Kayıt Uzunluğu] : Türü Integer’dır. Açılacak olan dosyada kayıtların adreslenmesinde kullanılan üzere her bir kaydın byte cinsinden boyutudur.
Dosya içindeki kayıt sayısı dosyanın byte cinsinden olan boyutunu kaydın byte cinsinden olan boyutuna bölümünden ibarettir.  Aşağıda bu işlemi gerçekleştiren program kodu verilmiştir.

Ks = LOF([Dosya No])/[Kayıt Uzunluğu]

Dosya içine kayıt eklemek için put değimi kullanılır. Put değiminin yazım şekli aşağıda belirtilmiştir.

Put #[Dosya No],[Kayıt No],[Kayıt Değişkeni]

[Dosya No] : Dosya açarken kullanılan doaya numarasıdır.
[Kayıt No] : Kaydın kaçıncı sıraya yazılacağını belirtir. Bilgisayar sabit kayıt uzunluğu sayesinde belirtilen kaydın byte cinsinden adresini hesaplar.
[Kayıt Değişkeni] : Kayın No sayesinde hesaplanan kayıt adresine Kayıt değişkeninin içerdiği bilgiler yazılır.
Dosya içinden bir kaydı okumak için Get değimi kullanılır. Get değiminin yazım kuralı aşağıda belirtilmiştir.

Get #[Dosya No],[Kayıt No],[Kayıt Değişkeni]

[Dosya No] : Dosya açarken kullanılan doaya numarasıdır.
[Kayıt No] : Kaydın kaçıncı sıradan okunacağını belirtir. Bilgisayar sabit kayıt uzunluğu sayesinde belirtilen kaydın byte cinsinden adresini hesaplar.
[Kayıt Değişkeni] : Kayın No sayesinde hesaplanan kayıt adresinden okunan bilgiler Kayıt değişkenine yazılır.
Program içinde kullanılmayan dosyalar Close değimi ile kapatılmalıdır.
Close [Dosya No]

Related Articles

Leave a Reply

Close

Reklam Engelleme

Please consider supporting us by disabling your ad blocker