Air Jordan Horizon Women MBT Kimondo Men Nike Kyrie 2 MBT Kisumu Nike Magista II TF Timberland 6 Inch Boots Shoes Adidas Yeezy Boost 350 Women Air Jordan Jumpman Team II Men Air Jordan Reveal Men Nike Air Max Tailwind 7 Nike Magista Obra FG MBT Kisumu 2 Adidas Ace 16 Purecontrol Air Jordan 6 Air Jordan CP3 VIII Men MBT Kifundo Men Nike HypervenomX IC Nike Roshe Two Adidas Kaiser 5 FG Nike Air Jordan flight 45 Nike Air More Uptempo Men MBT Kimondo Gtx Men Nike Air Max Plus Txt Men Nike Roshe Two Flyknit Shoes Nike HypervenomX Proximo TF Adidas Kaiser 5 TF Air Jordan Flight 89 Nike Air Yeezy 2 Air Jordan 3.5 Homme Adidas John Wall 2 Homme MBT Flame Chaussures Nike Air Force 1 Homme's Chaussures Nike Air Max 90 Homme Nike Free Flyknit NSW Nike Roshe Run BR Nike ELASTICO Finale III Street TF Saucony Shadow 6000 Chaussures Timberland Chukka Boots Adidas Ultra Boost Adidas Climacool Fresh Bounce Adidas Originals NMD C1 Chaussures Adidas Stan Smith Primeknit Adidas Ace 16 FG Air Jordan Westbrook Herren MBT Fora Gtx Damen Nike Air Force 1 30th Herren Nike Air Max 95 Nike Free Inneva Woven Nike Roshe Run DMB Herren Timberland Classic Oxford Herren Adidas Originals NMD R1 Adidas Originals ZX 9000 Juice X Adidas Consortium Stan Smith Adidas Superstar 2 Schuhe Adidas Messi 16 FG Nike Air Max Motion LW Air Jordan 4 Adidas Ultra Boost Olympic Supra Bleeker Women Timberland 6 Inch Boots Nike Zoom Ascention Men MBT Kitabu Gtx Shoes Air Jordan 2 Men Adidas D Rose 7 Men MBT Baridi Women Nike Air Force 1 07 High Nike Air Huarache Men Adidas Climacool Boat Lace Adidas Neo Chaussures Adidas NMD Human Race Adidas Originals ZX 500 Adidas Originals Stan Smith W Adidas Originals Pride Pack Adidas 11 Pro TF Adidas Springblade Schuhe Adidas Tubular Schuhe Adidas Yeezy Boost 550 Adidas Originals ZX 8000 Nike Elastico Pro III IC Adidas Messi 16 AG Adidas Originals NMD Air Jordan 23 Air Jordan 3.5 Men Nike Air Max 2017 Adidas Original ZX Adidas Climacool Boat Nike Elastico Pro III IC Adidas Superstar 2 Shoes Nike Roshe Two Flyknit Shoes Adidas Stan Smith Adidas Ultra Boost Shoes MBT Fora Gtx Women Adidas Neo Timberland Chukka Boots Adidas NMD Nike Magista Obra IC MBT Lami Damen Adidas Messi 16.3 IC Timberland 6 Inch Boots Herren Nike ELASTICO Finale III Street TF Adidas NMD C1 Nike Air Max 2016 Nike Free Flyknit NSW Adidas Ultra Boost Uncaged Adidas Stan Smith Primeknit
OPEN, FIELD, RSET, LSET, PUT, VAL Komutları Ve Toplu İşlem Dosyaları

BİLGİLERİN DOSYAYA KAYDEDİLMESİ

Buraya kadar iyi, güzel de, yaptığımız programları kullanarak girdiğimiz bilgilerin kalıcı olmasını nasıl sağlayacağız? Yani, programı save komutu kullanarak kaydedebiliyor, daha sonra istediğimiz zaman load komutu kullanarak bulabiliyoruz, ama değişkenlere girdiğimiz bilgiler; yerlerine yenisini girdiğimiz ya da programdan çıktığımızda kayboluyor, bunları nasıl saklayacağız?

İşte, girdiğimiz bilgilerin kalıcı olmasını sağlamak amacıyla Gwbasic programlama dilinde dosyalama sistemini kullanacağız.

GWBASIC (BASIC) PROGRAMLAMA DİLİNDE DOSYALAMA SİSTEMİ

Gwbasic programlama dilinde değişkenlere girdiğimiz bilgileri saklamak ve istenildiğinde bulabilmek amacıyla dosyalama sisteminden yararlanırız. Bunun için de disket veya sabit diskde (A , B , C veya D .... gözünde) herhangi bir dosya(kütük) açarız ve değişkenlerdeki bilgileri bu dosyaya aktarırız. Her girilen bilgiyi ayrı bir satıra kaydederiz. Şimdi bunu nasıl yaptığımızı inceleyelim:

KURAL: Gwbasic dilinde açılan bilgi dosyalarının isimleri uzantı isimleri .bil olarak verilir. (Bakın; bilgi dosyası diyorum. Save komutuyla kaydettiğimiz program dosyalarıyla karıştırmayın) Uzantı isminin .bil olarak verilmesindeki amaç, bu dosyanın bilgi dosyası olduğunu anlayabilmemizdir. Yoksa, uzantı ismini farklı da verebiliriz.

Gwbasic 'de iki çeşit dosyalama sistemi vardır:

1. Sıralı dosyalar (kütükler)

2. Random dosyalar (kütükler)

Sıralı dosyalar kayıtların disk veya disket ortamına girdiklerinde saklandıkları dosyalardır. Bu dosyalarda bulunan bilgilere ulaşım da sıralı olur. Örneğin 4. satırdaki bilgiye ulaşmak için, 1, 2 ve 3.satırdaki bilgilerin de okunması gerekir.

Random dosyalar ise bir tamsayı anahtara göre disk veya disketlere kaydedilen dosyalardır. Bu sayede kayda (istenilen bilgiye) ulaşım hızlı olur. Ancak girilen bilgiler artan sıralı girilmediği takdirde diskde daha fazla yer kaplar. Fakat günümüzde sabit disklerin büyüklüğü ile mukayese edilirse ne kadar fazla yer kaplasalar da önemli bir yer kaplamazlar. Sadece ulaşım hızı biraz azalabilir. İlerleyen yıllarda ise işlemci hızlarının artmasıyla hız da da bir sorunkalmayacaktır. Biz kullanım ve erişim kolaylığı nedeniyle bu tür dosyalama sistemini inceleyeceğiz.

OPEN

Dosya açmak için kullanacağımız komut budur. OPEN komutu ile normal şartlar altında bir program içerisinde aynı anda en fazla 3 bilgi dosyası açılabilir. Biz eğer 4 veya 5 dosyayı aynı anda açmak istiyorsak Gwbasic derleyicisini çalıştırırken, ya dos ortamında veya toplu işlem dosyası içerisinden (sayfa sonunda açıklaması var) çalıştırarak ;

GWBASIC/F:

Şeklinde yazmalıyız. Diyelim ki aynı anda 5 dosya açılabilsin. O takdirde;

GWBASIC/F:5

Yazıp enter'a basacağız.

Komutun kullanılışı:

OPEN "Dosya İsmi.Uzantı İsmi" AS Dosya Numarası

Bunu açıklarsak, OPEN: (Dosya aç) Dosya ismi ve Uzantı İsmi: (İlk defa açıyorsak bizim vereceğimiz herhangi bir dosya ve uzantı ismi) AS: gibi, olarak anlamında Dosya numarası da 1, 2, 3 gibi bir numara. Bir örnek yapacak olursak:

OPEN "orhan.bil" AS 1

Komutunda Gwbasic derleyicisi aracılığıyla bilgisayara şunu diyoruz:

Dosya aç İsmi orhan uzantı ismi bil olsun bunu 1 numaralı dosya olarak aç.

OPEN"C:\BELGELER\ORHAN.BIL" as 1

C gözünde belgeler dizininde bulunan orhan.bil dosyasını 1 numaralı dosya olarak açar.

OPEN"C:\DENEME\AHMET.BIL" as 2

C gözünde deneme dizininde bulunan ahmet.bil dosyasını 2 numaralı dosya olarak açar.

Bunun yanında bir ikinci dosya açarsak burada ikinci dosyanın sonuna AS 2 yazıyoruz. OPEN komutu hem dosya ilk kez açıldığında hem de olan bir dosyayı açmak için kullanılabilir. Yalnız OPEN komutu ile dosyayı açmak yetmiyor. Ayrıca dosyanın tanımlanması gerekiyor. Yani dosya içine yerleşecek bilgilerin yerleşeceği alanların isim ve özelliklerinin tanıtılması gerekiyor. Bu nedenle OPEN komutundan hemen sonra FIELD komutu ile gerekli tanımlamaları yapmamız gerekiyor.

FIELD

Dosyanın kayıt alanlarını, isimlerini ve byte olarak uzunluklarını tanımlar.

Diyelim ki yukarıdaki orhan.bil dosyasını açtık ve yaptığımız programdaki a$ değişkeni içindeki sıra no bilgisi, b$ değişkeni içindeki Adı bilgisini ve c$ değişkeni içindeki Soyadı bilgisini bu dosyaya kaydedeceğiz. İşte bu bilgilerin hard diske veya diskete yerleşmesi amacıyla bilgilerin önce bilgisayar ile hard disk veya disket arasındaki bufer (ara bellek) değişkenlerine yerleşmesi gerekir. Yani a$, b$ ve c$ değişkenlerindeki bilgileri önce yine isimlerini bizim belirleyeceğimiz bufer değişkenlerine aktarmamız gerekir. Bunun için de bu bufer değişkenlerini FIELD komutu içerisinde tanımlamamız gerekir. Farzedelim ki;

a$ değişkenindeki Sıra No bilgisini sira$ ismi vereceğimiz bufer değişkenine aktaralım. Uzunluğu 3 karakter olsun

b$ değişkenindeki Adı bilgisini adi$ ismi vereceğimiz bufer değişkenine aktaralım. Uzunluğu 15 karakter olsun

c$ değişkenindeki Soyadı bilgisini soyad$ ismi vereceğimiz bufer değişkenine aktaralım. Uzunluğu 15 karakter olsun

Bu takdirde yazacağımız saha tanımlama komutu şu şekilde olur:

FIELD 1,3 AS SIRA$,15 AS ADI$,15 AS SOYAD$

Yani bu komutu açıklarsak;

1 numaralı Dosyanın değişken isimleri ve uzunlukları, 3 karakter olarak sira$,15 karakter olarak adi$, 15 karakter olarak soyad$ anlamına gelir.

Özet olarak, programın başında bilgilerin yerleşeceği dosyayı açmak için OPEN komutu ile dosyanın ismini ve kaç numaralı dosya olarak açılacağını belirtiyoruz. FIELD komutu ile de bu dosyanın içinde bulunan bilgilerin ara bellekte yerleşeceği değişkenlerin isimlerini ve içindeki bilgilerin ne kadar byte (karakter) uzunluklarında olduklarını açıklıyoruz.

Buna göre şöyle bir program yapabiliriz:

10 OPEN "DERS.BIL" AS 1

20 FIELD 1,3 AS SN$,20 AS ADI$,4 AS SNF$,5 AS NUMARA$,3 AS NOTU$

30 CLS

40 LOCATE 5,5:LINE INPUT "SIRA NO :",A$

50 LOCATE 7,5:LINE INPUT"ADI SOYADI:",B$

60 LOCATE 9,5:LINE INPUT"SINIFI :",C$

70 LOCATE 11,5:LINE INPUT"NUMARASI:",D$

80 LOCATE 13,5:LINE INPUT"NOTU :",E$

90 RSET SN$=A$:LSET ADI$=B$:LSET SNF$=C$:LSET NUMARA$=D$:RSET NOTU$=E$

100 PUT 1,VAL(A$)

110 LOCATE 16,5:LINE INPUT"Devam için 1, Çıkış için 2'yi seçiniz ...",x$

120 IF X$="1" THEN 30

130 IF X$="2" THEN END

140 GOTO 110

Şimdi bu mini programın açıklamasını görelim.

10 Çalıştığımız dizinde ders.bil isimli bir dosyayı 1 numaralı dosya olarak aç.

20 Bu 1 numaralı dosyanın ara bellek değişkenleri 3 karakter uzunluğunda sn$,20 karakter uzunluğunda adı$, 4 karakter uzunluğunda snf$,5 karakter uzunluğunda numara$,3 karakter uzunluğunda notu$ 'dır.

30 Ekranı sil.

40 5. satır, 5. sütuna git, ekrana Sıra No yaz ve program çalıştığında bu mesajın önüne girilen bilgiyi a$ değişkenine yaz.

50 7. satır, 5. sütuna git, ekrana Adı Soyadı yaz ve program çalıştığında bu mesajın önüne girilen bilgiyi b$ değişkenine yaz.

60 9. satır, 5. sütuna git, ekrana Sınıfı yaz ve program çalıştığında bu mesajın önüne girilen bilgiyi c$ değişkenine yaz.

70 11. satır, 5. sütuna git, ekrana Numarası yaz ve program çalıştığında bu mesajın önüne girilen bilgiyi d$ değişkenine yaz.

80 13. satır, 5. sütuna git, ekrana Notu yaz ve program çalıştığında bu mesajın önüne girilen bilgiyi e$ değişkenine yaz.

90 Kırmızı Renkle yazılan bu yeni öğreneceğimiz komut satırını aşağıda açıklıyacağız.

100 Kırmızı Renkle yazılan bu yeni öğreneceğimiz komut satırını aşağıda açıklıyacağız.

110 16. satır, 5. sütuna git, ekrana Devam için1, Çıkış için 2'yi seçiniz yaz ve program çalıştığında bu mesajın önüne girilen 1 veya 2 değerini x$ değişkenine yaz.

120 Eğer x$ değişkenine girilen bilgi 1 ise bir başka bilgi girmek için 30 numaralı satıra dönerek yeniden bilgi girişi yapmak üzere programın çalışmasına devam et.

130 Eğer x$ değişkenine girilen bilgi 2 ise programı sona erdir.

140 (Eğer x$ değişkenine girilen bilgi 1 veya 2 'den farklı ise,120 veya 130 numaralı satırlarda belirtilen işlemler yapılmayacak ve çalışma ister istemez bu satırları işlem yapmadan geçecek. Bu nedenle, kullanıcının illa da 1 veya 2'yi seçmesi için bu satır çalışmayı tekrar 110 nolu satıra yönlendiriyor.) 110 no'lu satıra git.

Yukarıda kırmızı renklerle belirtilen satırlara gelince: Burada yeni öğreneceğimiz komutlar; RSET, LSET, PUT ve VAL komutlarıdır. Tek tek açıklayalım.

RSET: Bilgilerin ara bellek değişkenlerine sağa yanaşık yerleşmesini sağlar. Diyelim ki 15 karakter uzunluğundaki ADI$ sahasına (değişkenine) b$ değişkeninde bulunan "Ahmet Aygün" bilgisini aktaracağız. Bunu RSET komutu kullanarak RSET adi$=b$ şeklinde aktardığımız zaman bilgiler bu sahaya sağa yanaşık olarak;

....Ahmet Aygün

şeklinde yazılır. (.... işaretlerini yazının sağa yanaşık olarak yerleştiği anlamında yazdım. Yani aslında yoklar, boşlukları ifade ediyorlar).

LSET: Bilgilerin ara bellek değişkenlerine sola yanaşık yerleşmesini sağlar. Yukarıdaki örneği bu defa LSET adi$=b$ şeklinde yazarsak;

Ahmet Aygün....

şeklinde yazılır.

Burada RSET İngilizce de "Right Set" in kısaltılmışı, LSET ise "Left Set" in kısaltılmışıdır. Biliyorsunuz İngilizce de "Right" Sağ, "Left" ise Sol anlamında kullanılır. "Set" ise yerleştirme anlamındadır.

Demek ki program içerisinde önce OPEN ile dosyayı açıyor, sonra field komutu ile dosya değişkenlerini tanıtıyor, daha sonra da programı yapıyor ve programın sonunda LSET veya RSET kullanarak program içindeki değişkenlerdeki bilgileri dosyaya kaydedilmek üzere ara bellek değişkenlerine yerleştiriyoruz. İşte bu ara bellek değişkenlerine yerleştirilen bilgilerin dosyaya yazılması da put komutu ile oluyor.

PUT

İngilizce koymak anlamına gelen bu komut sayesinde bilgilerin dosyaya koyulması (yazılması) sağlanıyor.

Kullanılışı:

PUT Dosya no,Satır No

Buna göre yukarıdaki programda bulunan PUT 1,val(a$) komut satırının anlamı; ara bellek değişkenlerinde bulunan ve FIELD komutu ile uzunlukları belirlenen, RSET ve LSET ile sağa veya sola mı yanaşık yerleşeceği belirlenen bilgileri 1 numaralı dosyaya a$ değişkeninde bulunan sayılı satıra kaydet. Burada şuna dikkat edelim. Program içerisinde sıra numarası diye girdiğimiz (1,2,3,4 ... gibi) bilgi a$ değişkenine yerleşiyordu. İşte biz burada sıra numarasını 1 girmişsek dosyanın 1. satırına, 2 girmişsek 2. satırına vb. kaydeder. Fakat burada a$ değişkeninden önce val diye bir komut kullanmışız ve a$ değişkenini parantez içine almışız. Bu nedir?

VAL

Karakter değişkenlerde bulunan karakter bilgiyi sayısal bilgi haline çevirir.

Kullanılışı:

VAL(değişken adı)

Daha önceki derslerimizden hatırlayacağınız gibi LINE INPUT komutu ile karakter bilgi değişkenleri olan, sonu $ işareti ile biten sahalara bilgi girişi yapıyorduk. İşte yukarıdaki programda sıra numarasını girdiğimiz bilgi a$ isimli bir karakter sahaya kaydedilmiş. Bu nedenle onu sayısal olarak tanımlamak için val(a$) deyimini kullandık. Eğer bu bilgiyi line input komutu ile değil de;

INPUT "Sıra No :",a

Şeklinde girseydik, bilgiyi a$ değişkenine değil de a değişkenine sayısal olarak kaydedecektik ve biz de val komutunu kullanmaya ihtiyaç hissetmeyecek bu komut satırını;

PUT 1,A

Şeklinde yazacaktık.

Burada bu komutun yerine PUT 1,1 yazarsak, yani a değişkeninin yerine 1 rakamını koyarsak, girilen bilgiler her seferinde dosyanın 1. satırına kaydolur, dolayısıyla bir önceki girilen bilgiler silinir. Veya PUT 1,3 yazarsak bu defa girilen bilgiler 1 numaralı dosyanın 3. satırına kaydolur. Her girilen bilgi sürekli 3. satıra yerleşeceğinden bir önce girilen bilgi her defasında kaybolur. Bu nedenle bilgilerin sırayla 1. satırdan başlayarak, 2, 3, 4 ve artan sırada, sırayla satırlara kaydolması ve önce girilen bilgilerin kaybolmaması için kullanıcıya bilginin dosyanın hangi satırına kaydedileceğini belirleme imkanı veriyoruz. Burada tavsiye şu: kullanıcı bilgileri 1. satırdan başlayarak sırayla ve bir artarak kaydetmeli. Bir önceki satırda sıra numarası 6 verilmişse bu defa 7 verilmelidir. Çünkü yine 6 sıra numarası verilirse bir önce girdiği bilgi kaybolur.Ayrıca bilgiler dosyada tamsayıyla belirtilen satırlara kaydolur. Yani 1,5 ya da 1,2 veya 5,6 gibi satırlar olamaz.

Yukarıdaki örnek programda "Sıra No" olarak ekrana yazdırdığımız mesajı, "Kayıt Sıra Numarası" veya kullanıcının anlayabileceği bir başka şekilde mesaj olarak yazdırabiliriz. Bu programcının zevkine bağlı bir durumdur.

Bu kaydettiğimiz bilgilerin dosyadan nasıl çağrılıp okunduğunu bir sonraki sayfada göreceğiz. Ayrıca Dosyadaki kayıtları silme, düzeltme gibi diğer konuları da ilerleyen derslerde göreceğiz.

BİLGİLERİN DOSYAYA KAYDEDİLMESİ

MS-DOS Kullanıcıları gerek DOS ortamında, gerekse WINDOWS altında herhangi bir işlem veya işlemleri yapmak amacıyla, çoğunlukla aynı ve uzun komutlar zincirini tekrarlarlar. Toplu İşlem dosyalarını kullanarak, tek bir isim adı altında birden fazla işlemi bir seferde yapabilirsiniz.

Bu Dosyaların kullanılmasına ve çalıştırılmasına ait bazı bilgiler:

  • Her Toplu İşlem dosyasını .bat uzantı ismiyle kaydetmeniz gerekmektedir.
  • Herhangi bir toplu işlem dosyasını çalıştırmak için uzantı ismini yazmanıza gerek yoktur.
  • Toplu İşlem Dosyasında bir başka toplu işlem dosyasını da çalıştırabilirsiniz.
  • Dos ortamında çalışıyorsanız komut satırının başına @ işareti koyarak o komut satırının ekranda yazılmasını engelleyebilirsiniz.

Bir toplu işlem dosyasını herhangi bir editör vasıtasıyla yazabileceğiniz gibi, DOS ortamında da hazırlayabilirsiniz. Windows da çalışıyorsanız Başlat-Programlar dan MS-DOS Komut İstemini seçin ve açılan pencerede (Veya DosBox ile açtığınız pencerede);

(Diyelim ki Hardiskimizin C gözünde BASIC dizini altında bulunan GWBASIC ile yazılmış fatura.bas isimli programı toplu işlem dosyası vasıtasıyla tek bir isim yazarak veya seçerek çalıştırmak istiyoruz.)

copy con fatura.bat

cd basic

gwbasic fatura

Yazıp, F6 tuşuna basıp enter'a basın. Dosya fatura.bat ismiyle kaydolur. Artık ekrana sadece fatura yazdığınızda Bilgisayar önce C gözünde BASIC dizinine geçer, sonra gwbasic'i ve fatura.bas dosyasını çalıştırır. Bu dosyayı aynı zamanda Windows'da çalışırken Başlat-Çalıştır'dan veya Bilgisayarımı açıp dosya hangi dizinde kayıtlı ise o dizine geçip açılan pencerede fatura.bat dosyasını gösteren simgeye ya da fatura.bat yazısına çift tıklayarak da çalıştırabilirsiniz. Ancak Xp den sonraki işletim sistemlerinde DosBox programına veya benzer emülasyon programlarına ihtiyaç vardır. Budurumda Dos Box penceresinde gwbasic derleyicisini açmadan toplu işlem dosyasının bulunduğu dizinde ilgili bat dosyasının ismini yazarak enter'a basıp çalıştırabilirsiniz. Yukarıdaki örnekte fatura.bat ismi rasgele verilmiş bir isimdir. İsmi dilediğiniz gibi verebilirsiniz. Mesela abc.bat, basla.bat, deneme.bat, gibi. Ancak uzantı ismi mutlaka bat olmalıdır.

16. Sayfa           18. Sayfa

INDEX