Clipper Ders Notları
1.Clipper'a Giriş

1.1 Derleme ve Link

2. Program Yazım Kuralları

3. Değişken Tanımlama

4. Clipper'da Kullanılan Operatörler

5. Temel Girdi Çıktı Komutları

6. Picture Kullanımı

7. Şablon Karakterler

8. Get-Read

9. Ekran Tasarımına Yönelik Komutlar

10.Kontrol Deyimleri

11. Menü Oluşturma Komutu

12. Döngü Oluşturan Komutlar

13. Veri Tabanı ÜZerinde İşlem Yapan Komutlar

Clipper'a Giriş

Clipper C Diliyle Yazılmış bir programlama dilidir. Veri Tabanı üzerinde yetenekli işlem özelliklerine sahiptir. Klasik dosyalama sistemlerinden farklı olarakindex yeteneği ve veri tabanı üzerinde write, rewrite, update, delete gibi işlem kolaylığı gösterdiği söylenebilir. C ile yazılmış olduğu için C kodlarını ve assembler rutinlerini desteklemektedir. Ekran tasarımı ve iletişimde yetenekli fonksyonlara sahiptir. Klasik diller; Basic ve türevleri, Cobol, Pascal gibi entegre bir ortama sahip değildir. Exe file oluşturmak için clipper iki dosyaya ihtiyaç duyar: 1-)Clipper.Exe 2-)Exospace.Exe

Yorumlayıcı--->Hataların denetlendiği yer ---> RAM'de yapılır.

Derleyici ---> Dosyanın OBJ uzantısının verildiği yer --->Diskte Yapılır.

İçerik

Derleme Ve Link

CLipper derleyicisi için yazılan programların kaynak kodlarının uzantısı PRG olmak zorundadır. Bu kaynak kodu derlemek için CLipper.exe dosyası kullanılır. Kullanımı: CLipper Dosyaadı

Yazılan kaynak kod clipper yazım kurallarına göre kodlanmış ise derleyici hiçbir hata mesajı vermeden OBJ uzantılı Obje kodu verecektir. Obje kodun adı kaynak kod ile aynı olacaktır. Eğer hata mevcut ise bu hataların satır numaraları ekranda listelenir ve Obje kod oluşmaz. Bir seferde birden fazla PRG uzantılı program derlenecek ise dosyaların adlarını içeren ve uzantısı CLP olan bir text dosya içine bahsedilen programların isimleri yazılır. Ve derlemeye o dosya ismiyle tabii tutulur. Kullanımı: Clipper X.CLP

Derlenmiş ve sonunda obje kod elde edilmiş bir programı EXE moda çevirmek için Exospace.exe dosyası kullanılır. Bu dosyayla birlikte kullanılan parametreler

/M Parametresi: Bir program içinde başka bir program DO deyimi ile çağırılıyorsa bu programı aramaz.

/W Parametresi: Yazılan kaynak kodun Summer87 versiyonu ile uyumluluğunu sağlamak ve değişken deklarasyonu ile ilgili uyarıların verilmemesini sağlamak için kullanılır.

/A Parametresi: Bellek Değişkenlerinin otomatik deklarasyonunu sağlamak için kullanılır.

/D Parametresi: Ön işlemci deyimine parametre olarak kullanılmak üzere derleme sırasında değişken tanımlamak amacıyla kullanılır.

/C Parametresi: C Programlama diliyle oluşturulmuş *.CH kütüphane dosyalarını DOS ortam değişkeni olarak tanımlanan INCLUDE değişkeninin  işaret ettiği yerde aratır. Clipper, EXE yapım aşamasında aktif Director de CH uzantılı dosyaları bulamazsa INCLUDE değişkeninin işaret ettiği yerde arar.

/N Parametresi: Bir program içinde başlama prosedürü açıkça belirtilmediyse kullanılır.

/S Parametresi: OBJ kod üretmeyip sadece yazılım hatalarını denetlemek için kullanılır.

/T Parametresi: Tampon dosyaların oluşturulacağı dizini belirler. Derleme esnasında oluşan geçici dosyalar burada tutulurlar.

LİNK İŞLEMİ

CLipper'in OBJ koda çevirdiği programların EXE file'a dönüşümünde "EXOSPACE FI program_adı"  komutu kullanılır. Eğer birden çok OBJ uzantılı dosyayı compile etmek istersek

EXOSPACE FI 1.prg_adı,2.prg_adı,3.prg_adı  bu komutla 1.prg_adı.exe dosyası oluşur.

EXOSPACE FI 1.prg_adı,2.prg_adı,3.prg_adı OUTPUT ornek

Bu işlem sonunda ORNEK.EXE dosyası oluşur.

İçerik

Program Yazım Kuralları

1- Clipper programlarında satır numarası verilmez

2- Program yazımına ekranın istenilen satır ve sütunundan başlanabilir.

3- Bir ekran satırına sığmayan satır sonuna noktalı virgül(;) işareti konur.

4- Program içinde açıklama satırlarının önüne yıldız (*) işareti konur. Bu satırlar OBJ koda dahil edilmez.

5- Program satırlarına açıklama eklemek için && işareti kullanılır.

6- /* açıklama */  şeklinde açıklama eklenebilir

7- Program satırından sonra // işareti konularak devamına açıklama eklenebilir.

8- Clipper büyük-küçük harf ayırımı yapmaz.

İçerik

Değişken Tanımlama Kuralları

Clipperda kullanılacak değişkenler ya Type bildiri deyimleri ile tanımlanır veya kendilerine atanan verinin tipine göre otomatik olarak veri tipi özelliği kazanırlar.

a=5  sayısal tipte a değişkeni tanımlandı ve başlangıç değeri 5 olarak belirlendi

a=0  sayısal tipte bir değişken tanımlandı ve başlangıç değeri 0 olarak belirlendi

a="Özgür"  Karakter tipte bir değişken tanımlandı. Bu değişkenin ilk değeri Özgür olarak atandı

a=space(5)  5 karakter uzunluğunda ilk değeri atanmamış karaktersel bir değişken tanımlandı.

İçerik

CLipper'da Kullanılan Operatörler

1- Matematiksel Operatörler

Operatör İşlevi Veri Tipi
+ Toplama Sayısal, Tarihsel
+ Birleştirme  Karaktersel
- Çıkarma Sayısal, Tarihsel
- Birleştirme Karaktersel
* Çarpma Sayısal
/ Bölme Sayısal
**,^ Üs Alma Sayısal
% Mod alma Sayısal
++ 1 artırma Sayısal
-- 1 eksiltme Sayısal
 

2- Mantıksal Operatörler

Operatör İşlevi Kullanım
.AND. Ve Operatörü Verilen iki şart doğruysa doğru değilse yanlış sonucunu üretir
.OR. Veya Operatörü Verilen İki şarttan birinin doğru olması durumunda Doğrudur.
.NOT. Değil Operatörü Verilen operatörün sonucunun tersini dönderir.
! Değil Operatörü Verilen operatörün sonucunun tersini dönderir.
 

3- Atama Operatörleri

Operatör Kullanımı Sonucu
= A=B A'nın değerini B ye atar
:= A:=B A'nın değerini B'ye atar 
+= A+=B A=A+B
-= A-=B A=A-B
*= A*=B A=A*B
/= A/=B A=A/B
%= A%=B A=A%B

4- Karşılaştırma Operatörleri

Operatör İşlevi
= Eşitlik Operatörü

#,!=,.NOT.,<>

Eşit Değil Operatörü

5- İçerme Operatörü

Birinci terimin ikinci terim içinde birebir geçip geçmediğinin kontrolüdür.

SONUC="E" $ "EBC" --> işlemin sonucu .T.

SONUC="E" $ "BEC" --> işlemin sonucu .F.

6- Diğer Operatörler

<,>,<=,>= kullanılan diğer operatörlerdir.

İçerik

Temel Girdi Çıktı Komutları

? ve ?? Deyimleri: Ekrana veya yazıcıya bir sabit değeri, bir ifadenin sonucunu veya değişkenin içeriğini yazdırmak için kullanılır

? ifadesi yazdırılacak bilgiyi bir alt satıra yazdırır ?? ifadesi ise aynı satırda kalınan yerden devam etmeyi sağlar.

ACCEPT Deyimi: Karaktersel Değişkenlere bilgi aktarmak için kullanılır.

ACCEPT "Mesaj" TO Degisken_ADI  **Değişken tipinin önceden belirlenmiş olması gerekir.

Örnek:
adi=space(10)
Accept "Adı Giriniz:" TO adi

INPUT Deyimi: Numerik(sayısal) değişkenlere bilgi aktarmak için kullanılır.

INPUT "Mesaj" TO degisken_ADI

Örnek:
No=0
INPUT "Numarayı Giriniz:" TO No

SAY Deyimi: Herhangi bir değişkenin değerini ekranda belli bir satır sütun üzerinde istenilen renk ve şablon tasarımı ile yazılmasını sağlar

@satır,sütun  SAY  degisken  picture  renk

Örnek: Klavyeden girilen 3 adet string tipindeki bilginin birleştirilerek ekranda 3. satır 5. sütunda görüntülenmesini sağlayan program

ST1=space(5)
ST2=space(5)
ST3=space(5)
accept "1. Stringi Girin:" TO ST1
accept "2. Stringi Girin:" TO ST2
accept "3. Stringi Girin:" TO ST3
ST=st1+st2+st3
@3,5 SAY ST

SET DATE TO Deyimi: Tarih formatını ayarlamak için kullanılır.  SET DATE TO AMERICAN --> ay/gun/yıl        SET DATE TO BRITISH --> gün/ay/yıl

CTOD Deyimi: Alfanumerik ifadeleri tarih formatına çevirir.

DTOC Deyimi: Tarih formatını alfanumerik ifadeye çevirmek için kullanılır

Örnek: Klavyeden girilen 2 tarih arasında kaç gün,kaç ay ve kaç yıl olduğunu bulan program

a=space(10)
b=space(10)
accept "1. Tarihi gir:" to a
accept "2. Tarihi gir:" to b
t1=ctod(a)
t2=ctod(b)
gun=t1-t2
? gun

İçerik

Picture Kullanımı

Bilgilerin formatlı olarak görüntülenmesini sağlar. Picture elemanlarından önce "@" işareti kullanılır.

Parametreleri

B Parametresi: Çıktıyı sola dayalı görüntüler. 

B=50000
@5,10 Say "Ücret:"
@5,17 say B PICTURE "@B"

/C Parametresi: Pozitif sayılardan sonra kredi sembolü olan (CR) ifadesinin görüntülenmesini sağlar

/X Parametresi: Negatif sayılardan sonra kredi sembolü olan (DB) ifadesinin görüntülenmesini sağlar.

/D Parametresi: Bilginin aktif tarih formatına göre yazılmasını sağlar.

/E Parametresi: Tarih bilgisinin ingiliz formatına göre görüntülenmesini sağlar

/( Parametresi: Negatif sayıların parantez içinde görüntülenmesini sağlar

/! Parametresi: Küçük harflerden oluşan bir stringin büyük harfler ile görüntülenmesini sağlar.

***Bütün Picture anahtarları birbirleri ile kullanılabilirler

İçerik

Şablon Karakterler

Çıktı formatını istenilen şekilde biçimlendirmeye yarayan karakterlerdir. Picture anahtarlarıyla birlikte de kullanılabilirler.

/A Parametresi: Alfabetik bilgileri görüntülemede kullanılır. Kullanılan her A Bir stringe karşılık gelir.

/N Parametresi: Hem sayısal hemde karaktersel bilgileri şekillendirmek için kullanılır.

/9 Parametresi: Sayısal bilgilerin istenilen biçimde formatlanmasını sağlar.

ucret=10000000

@5,17 say ucret picture "99,999,999"

/$ Parametresi: Sayısal bilgilerin önüne $ işareti getirilmesini sağlar.

İçerik

Get-Read Deyimleri

Get-Read deyimi ile daha önceden tanımlanan veya ilk değer ataması yapılmış bellek değişkenlerine dış ortamdan(klavye) değer aktarımı yapılır. Her bir Get deyimi için bir Read ifadesi zorunludur. Fakat birden çok Get deyimi birlikte kullanıldığında hepsi için bir Read deyimi yeterlidir. Get-Read deyimi ile Picture, şablon karakterler aynı şekilde veya doğrudan kullanılabilirler.

Örnek:

sehir=space(10)

@5,5 say "Şehir Giriniz:" GET sehir PICTURE "@10!" && 10 karakteri büyük harfe çeviren picture kullanıldı
READ

READEXIT FONKSYONU

Herbir GET alanı arasında ok tuşlarıyla geçiş yapılmasına rağmen en sonuncu GET alanından ok tuşuyla çıkış yapılamamaktadır. Aslında bu çıkış Get-Read in sonlandırılması anlamındadır. READEXIT(.T.) bir belirlemeyle ok tuşları ile son alandan çıkmak mümkün olur. Ok tuşlarıyla çıkılması istenmiyorsa READEXIT(.F.) yapılmalıdır.

RANGE Deyimi

Get deyimi ile bilgi aktarılmak istenen değişkenin alabileceği maximum ve minimum değerlerin belirlenmesinde kullanılır.

Örnek:Yalnızca 01.03.2000 ile 01.08.2000 tarihleri arasındaki girişleri kabul eden  program.

Set Date to british
tar=date()
@5,5 SAY "Tarih:" GET tar RANGE ctod("01.03.2000),ctod("01.08.2000) && iki tarih arasında kısıtlama yapıldı
READ

VALID Deyimi

Range deyimine göre programcıya daha fazla kontrol imkanı sağlar. Valid deyimi bir başka fonksyonda dönen Logical değişkenin True veya False olmasına göre özellik kazanır.Dönen değer True ise değişkene giriş kabul edilir, False ise kabul edilmez.

MSG Deyimi

Get deyimi ile değişkenlere mesajlı bilgi aktarımı için kullanılır.

Örnek:

degisken1=degisken_tipi
degisken2=degisken_tipi
@satır,sütun GET degisken1 MESSAGE "Mesaj"
@satır,sütun GET degisken2 MESSAGE "Mesaj"
READ MSG AT mesajın_görüntüleneceği_satır,Başlangıç_sütun,bitiş_sütun

İçerik

Ekran Tasarımına Yönelik Komutlar

SET COLOR Deyimi

Ekranda zemin,yazı ve sınır rengi değişimini sağlar. Çeşitli renk kodları vardır.N:siyah, B:Mavi, G:Yeşil, R:Kırmızı, BG:Cyan bu renklerin parlak tonları yanlarına "+" işareti konularak elde edilir.

CLEAR Deyimi

Ekranın tamamını temizlemek için kullnılır.Clear Screen veya CLS olarak kullanılır. Clear yalnız kullanıldığında hem ekranı temizler hemde beklemekte olan GET deyimlerini veri almış kabul eder.

CLEAR TO Deyimi

Ekranın belirtilen noktaları arasında kalan bölümünü temizlemek için kullanılır.

@Başlangıç_satır,Başlangıç_sütun CLEAR TO Bitiş_satır,Bitiş_sütun

İçerik

Kontrol Deyimleri

IF Cumlesi

Programı şarta bağlı olarak yönlendirmek için kullanılır.

KULLANIM ŞEKİLLERİ

IF Şart
  Komutlar
Endif
IF Şart
  Komutlar
ELSE
  Komutlar
Endif
IF Şart
  Komutlar
    ELSEIF şart
      Komutlar
    ELSEIF Şart
      Komutlar
Endif 

Örnek:Klavyeden girilen 0-10 arasındaki bir sayının 0-3 arasında olanlarına 1. Grup, 4-6 arasında olanlarına 2. Grup,7-8 Olanlara 3. Grup, 9-10 olanlara 4. grup yazan program

SET EXACT ON
sayi=0
CLS
@12,10 Say "Sayı Giriniz:" Get Sayi Range 0,10
READ
if sayi>=0 .and. sayi<= 3
@13,10 say "Sayı 1. Grupta"
if sayi>=4 .and. sayi<=6
@13,10 say "Sayı 2. Grupta"
if sayi=7 .or. sayi=8
@13,10 say "Sayı 3. Grupta"
if sayi=9 .or. sayi=10
@13,10 say "Sayı 4. Grupta"

Endif

İçerik

Menü Oluşturma Komutu

PROMPT Deyimi

Menü Hazırlamak için kullanılır.

Örnek

Set Wrap On && Ok Tuşlarıyla Menü elemanlarında dolaşımı sağlar
CLS
Set Message to 12 Center && üzerine gelinen menü elemanının açıklamasınin yeri
@5,25 PROMPT "KAYIT" MESSAGE "KAYIT GİRİŞİ" && KAYIT isimli menü elemanı oluştu
@6,25 PROMPT "SİLME" MESSAGE "KAYIT SİLME" && SİLME isimli menü elemanı oluştu.
Menu to secim
if secim=1
? "KAYIT BÖLÜMÜ" && ilerliyen konularda bu bölümde kayıt yapabileceksiniz :))
endif
if secim=2
? "SİLME BÖLÜMÜ"
endif

daha detaylı bir pull down menü kodları için burayı tıklayın lütfen

DO CASE Deyimi

Do case deyimi işlem bakımından blok if cümlesinin yaptığı işlemleri eksiksiz yapar. Avantajı çok sayıda iç içe if'in oluşturduğu program karmaşasında programın okunulurluğunu kolay hale getirir.

DO CASE
    CASE şart1
      işlemler
    CASE şart2
     işlemler
   OTHERWISE
      işlemler
END CASE

Örnek

Set Wrap On && Ok Tuşlarıyla Menü elemanlarında dolaşımı sağlar
CLS
Set Message to 12 Center && üzerine gelinen menü elemanının açıklamasınin yeri
@5,25 PROMPT "KAYIT" MESSAGE "KAYIT GİRİŞİ" && KAYIT isimli menü elemanı oluştu
@6,25 PROMPT "SİLME" MESSAGE "KAYIT SİLME" && SİLME isimli menü elemanı oluştu.
Menu to secim
Do CASE
CASE secim=1
?  "KAYIT BÖLÜMÜ" && ilerliyen konularda bu bölümde kayıt yapabileceksiniz :))
CASE secim=2
? "SİLME BÖLÜMÜ"
END CASE

İçerik 

Döngü Oluşturan Komutlar

FOR-NEXT Döngüsü

For değişken=başlangıç_değeri TO bitiş_değeri STEP artma veya azalma miktarı

Örnek:Çarpım Tablosu (10,9 ve 8 için)

cls
for i=9 to 10 step 1
for k=1 to 10 step 1
if k<2 .and. k>1
loop
endif
if i=1
exit
endif
d=k*i
? d
next k
next i

DO WHILE Döngüsü

Verilen şartın doğru olduğu sürece döngünün oluşmasını sağlar. İç içe DO WHILE lar kullanılabilir. İçinde IF blokları bulunabilir. FOR-NEXT yapısında olduğu gibi LOOP ve EXIT komutları döngüyü yönlendirir.

Örnek:Çarpım Tablosunun DO WHILE ile yapılması

cls
c=1
cd=8
do while cd<=9
? "---------------"
Do while c<=10 .and. cd>=8
? cd,"*",c,"=",c*cd
c++
enddo
c=1
cd++
enddo

İçerik

Veri Tabanı Üzerinde İşlem Yapan Komutlar

İçerik

[Ana Sayfa]