Şimdi Ara

FreeBASIC ile Linux programlama (basit bir Türkçe kabuk örneği)

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
2
Cevap
0
Favori
153
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • FreeBASIC ile Linux programlamaya giriş

    FreeBASIC, programlamaya QBASIC veya QuickBASIC ile başlayan programcıların kolayca DOS/Konsol programları yazmaya başlayabilecekleri bir BASIC türevidir. FreeBASIC ile GTK kütüphanesi kullanarak grafik kullanıcı arayüzleri de oluşturabilirsiniz.

    LINUX’ta FreeBASIC kurulumu:
    FreeBASIC’in kendisi ve FreeBASIC ile yazılan programlar libc, libm, libpthread, libdl ve libncurses kütüphanelerini kullanmaktadır ve bu kütüphaneler çoğunlukla Linux dağıtımlarında hazır bulunmaktadır. Yazdığınız programa göre başka bazı kütüphaneler de kullanılabilir. Bazı Linux dağıtımlarında kuruluma başlarken belirli kategorilerde yazılımlar yüklemek için seçenekler bulunmaktadır. Eğer geliştirme seçeneğini işaretleyerek kurulum yapmış iseniz FreeBASIC’in bağımlılıkları zaten yüklenmiş olabilir. Derleme işlemini konsolda yaparken eksik olan kütüphanelerden dolayı hata iletisi alırsanız bu kütüphaneleri kurup derleme işlemini tekrar yapabilirsiniz.

    FreeBASIC’in Linux versiyonu .tar.gz uzantılı sıkıştırılmış dosya olarak dağıtılmaktadır. Bu dosyayı indirip açtıktan sonra dosyadan çıkan dizine girip terminalde ./install.sh -i yazarak kurulum için hazırlanmış kabuk betiğini çalıştırarak FreeBASIC’i derleme yapmaya hazır hale getirebilirsiniz.

    Program Derleme
    merhaba.bas adında bir dosya oluşturun. Dosyayı herhangi bir metin düzenleme programı ile açın ve aşağıdaki satırı yazıp kaydedin:
    Print “Merhaba dünya!”

    Konsolda fbc merhaba.bas yazarak enter tuşuna basın. Herhangi bir hata mesajı almazsanız ./merhaba yazıp enter tuşuna bastığınızda konsolda Merhaba dünya biçiminde bir çıktı alabilirsiniz.

    Hata Denetimi
    deneme.bas adında bir dosya oluşturun ve bu kez aşağıdaki satırları yazıp kaydedin:

    for x=1 to 10
    print x
    next x

    Konsolda fbc deneme.bas yazarak enter tuşuna bastığınızda aşağıdaki hata iletisini görebilirsiniz:
    deneme.bas(1) error 40: Variable not declared, x in ‘for x=1 to 10’

    Bu hata anlayabileceğiniz üzere programda kullanılan x değişkeninin tanımlanmadığını bildiriyor. Hatayı gidermek için 1. satıra şu değişken tanımını ekleyebilirsiniz:
    Dim x as integer

    Tekrar derleme işlemi yapıp ./deneme yazarak enter tuşuna bastığınızda konsolda aşağıdaki gibi bir çıktı alabilirsiniz:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10

    Bu hatayı gidermenin diğer bir yöntemi de -lang derleyici seçeneğini kullanmaktır. Derleme yaparken konsolda fbc -lang qb deneme.bas yazarsanız QuickBASIC’te olduğu gibi Dim x as integer satırı olmadan da programınız derlenip çalıştırılabilir. Eğer elinizde hazır QuickBASIC kodları varsa onları -lang db seçeneği ile üzerinde değişiklik yapmadan derleyebilmeniz mümkün olabilir ancak bu bütün programlar için geçerli olmayabilir.

    String İşlemleri
    Aşağıda örnek bir Linux kabuk programının kodları verilmektedir. Programda tanımlanmış olan komutlar:
    son kabuktan çık
    esl ekranı sil
    yaz ekrana string yaz
    saat ekrana geçerli saati yaz
    tarih ekrana geçerli tarihi yaz
    sil diskten bir dosya sil

    Programın kodu:
    Print “Linux için Türkçe kabuk uygulaması”
    dim as string dizin, komut, arguman
    baslangic:
    dizin=CURDIR + “>”
    Line input dizin, komut
    komut=trim(komut)
    if InStr(komut, ” “)>0 then
    arguman=mid(komut, InStr(komut, ” “)+1)
    komut=left(komut, InStr(komut, ” “)-1)
    end if
    Select Case komut
    Case “son”
    Print
    End
    Case “esl”
    Cls
    Case “yaz”
    Print arguman
    Case “saat”
    Print Time
    Case “tarih”
    Print Date
    Case “sil”
    dim sonuc as integer = Kill(arguman)
    if sonuc <> 0 then print arguman & ” dosyası silinemedi!”
    Case Else
    Print “komut yok”
    End Select
    Goto baslangic

    Programı derleyip çalıştırdığımızda şöyle bir sonuç alabiliriz:

    [berrin@localhost FreeBasic]$ ./kabuk
    Linux için Türkçe kabuk uygulaması
    /home/berrin/FreeBasic>merhaba
    komut yok
    /home/berrin/FreeBasic>yaz merhaba
    merhaba
    /home/berrin/FreeBasic>saat
    03:43:04
    /home/berrin/FreeBasic>tarih
    05-29-2013
    /home/berrin/FreeBasic>sil berrin.txt
    berrin.txt dosyası silinemedi!
    /home/berrin/FreeBasic>sil sil.txt
    /home/berrin/FreeBasic>son

    [berrin@localhost FreeBasic]$

    1. satırda Print “Linux için Türkçe kabuk uygulaması” program ilk çalıştığında program hakkında bilgi vermek üzere ekrana bir string yazmak için kullanılıyor.

    2. satırda dim as string dizin, komut, arguman ile 3 ayrı string değişken tek seferde tanımlanmış oluyor.

    3. satırda baslangic: etiketi yazılarak programın her komuttan sonra buraya dönmesi sağlanıyor.

    4. satırda dizin=CURDIR + “>” ile kabuk programında komutların yazıldığı satırların önüne geçerli dizin ve büyüktür işareti eklenmek üzere tanımlanıyor. Burada string tipinde bilgi döndüren CURDIR fonksiyonundan dönen string ile > işareti + işaretiyle birleştiriliyor.

    5. satırda Line input dizin, komut ile kullanıcıdan komut girişi alınıyor. Yani 4. satıroa tanımlanmış olan geçerli dizin> yazısı ile başlayan satıra kullanıcı komut yazıp enter tuşuna bastığında yazdığı string komut değişkenine aktarılmış oluyor.

    6. satırda komut=trim(komut) ile kullanıcının girdiği komutun başında ve sonunda bulunabilecek olan boşluk karakterleri siliniyor. Bu yapılmadığı zaman yazılan komutlar programda tanımlanan komutlarla eşleşmeyebilir. Örneğin “yaz” ile solunda boşluk bulunan ” yaz” birbirine eşit değildir.

    7., 8., 9. ve 10. satırlarda:
    if InStr(komut, ” “)>0 then
    arguman=mid(komut, InStr(komut, ” “)+1)
    komut=left(komut, InStr(komut, ” “)-1)
    end if
    kodları ile girilen komutta boşluk var ise boşluktan sonraki kısım argüman, boşluğa kadar olan kısım da komut olarak ayrılmış oluyor.

    Bundan sonraki kısımda Select Case … End Select kullanılarak komutlar tanımlanmış oluyor. Yani yazılan komut case ile kıyaslanan komutla aynı ise alttaki satırdan itibaren yazılan kodlar çalışıyor.







  • 
Sayfa: 1

Benzer içerikler

- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.