Amiga Dunyasi - Sayi 15 (Agustos 1991).pdf - Retro Dergi
Amiga Dunyasi - Sayi 15 (Agustos 1991).pdf - Retro Dergi
Amiga Dunyasi - Sayi 15 (Agustos 1991).pdf - Retro Dergi
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
İlgili event trapping ON olduğunda ve<br />
dahili saatte verilen x saniye dolduğunda,<br />
belirtilen etiketi dallanır. Bu yönerge, her<br />
x saniyede bir dallanmaya sebep olur. eti-<br />
ket, bir etiket ya da satır numarası olabilir.<br />
n, O'a eşit ve 86400'den (24 saat) büyük<br />
olamaz. GOSUB 0, TIMER event'ını keser.<br />
OPEN KOMUTU:<br />
Kullanım Şekli:<br />
1. Kullanım -<br />
OPEN mod,[#]dosya-no,dosya-adı[,u-<br />
zunluk]<br />
2. Kullanım -<br />
OPEN dosya-adı [FOR mod] AS<br />
[#]dosya-no [LEN=],uzunluk<br />
OPEN komutu, bir dosya ya da bir cihaz<br />
açar. Her iki yazım şekli de aynı amaçla<br />
kullanılır.<br />
Bir dosya, dosyaya veri girişi ya da veri<br />
okuma için açılır, mod kısmında, hangi<br />
amaçla açıldığı belirtilir.<br />
dosya-no, tamsayı bir değerdir ve 1 ile<br />
255 arasında bir sayı ile belirtilir. Dosya<br />
açıldığında bu numara dosya ile birleştiri-<br />
lir ve bu dosya ile yapılacak tüm işlemler-<br />
de kullanılır.<br />
dosya-adı, dosyanın adını belirten bir<br />
karakter dizisidir; başında sürücü ya da<br />
disket adı verilebilir.<br />
uzunluk, bir dosya kaydının kaplayacağı<br />
yer olarak düşünülmeli ve 32767 byte'ı<br />
aşmamalıdır. Bu parametre kullanılmazsa,<br />
sequential (sırasal) ya da (random) rasgele<br />
erişimli dosyaların her birinde tanımlı ka-<br />
yıt uzunluğu 128 byte olur. Random dos-<br />
yalar için kayıt uzunluğu, bir kayıt içinde-<br />
ki karakter sayısı olarak hesaplanmalıdır.<br />
Sequential dosyalarda uzunluk parametre-<br />
sinin tek bir kaydın uzunluğunu gösterme-<br />
sine gerek yoktur; zira bu tür dosyalar,<br />
farklı uzunluklarda kayıtlar içerebilirler.<br />
Bu tür dosya kullanıldığında, uzunluk,<br />
diskete yazılmadan ya da disketten okun-<br />
madan önce buffer'a yüklenecek karakter<br />
sayısını belirtir.<br />
1. Kullanım şeklinde, mod aşağıdakiler-<br />
den biri olabilir:<br />
0 Sequential çıkış modu<br />
1 Sequential giriş modu<br />
R Random giriş/çıkış modu<br />
A Sequential ekleme modu<br />
2. Kullanım şeklinde, mod aşağıdaki ke-<br />
limelerle belirtilir:<br />
OUTPUT Sequential çıkış modu<br />
INPUT Sequential giriş modu<br />
APPEND Sequential çıkış modunu<br />
belirtir ve dosya işaretçisini dosya sonuna<br />
pozisyonlar. Bir PRINT# ya da WRITE#<br />
yönergesi ile eklenen yeni kayıt dosyanın<br />
sonuna eklenir.<br />
Bu kullanımda mod yazılmazsa, random<br />
erişim modu olduğu kabul edilir.<br />
Şu ana kadar Sequential ve Random di-<br />
ye bahsettiğimiz dosya türlerini bildiğinizi<br />
varsaydık. İsterseniz örneklerle komutu-<br />
muzu tamamlamadan önce, bilmeyenler<br />
için bu dosyaları kısaca tanıtalım:<br />
Sequential dosyalar, bilgileri sırayla ar-<br />
ka arkaya saklayıp yine aynı sırayla oku-<br />
yan dosyalardır. Yani her kayıt bir önceki-<br />
nin arkasına eklenir. Bu tür dosyalar bir-<br />
çok programlama işlevini yerine getirebi-<br />
lir; ancak geniş uygulamalar için yeterli<br />
değildir. Düşünün, yüzlerce kayıt olan bir<br />
dosya oluşturdunuz. Yazarken pek bir so-<br />
run yok; ama bir kaydı ararken ilk kayıt-<br />
tan başlayarak tüm kayıtlar tek tek okuna-<br />
caktır. Bu da oldukça sıkıcı ve zaman alıcı<br />
bir işlem.<br />
Random dosyalar işte burada imdadını-<br />
za yetişiyor. Dosya kayıtlarına rasgele eri-<br />
şim sağladığı için, erişim hem çok kolay<br />
hem de süresi çok kısa. Bu dosyalar, her<br />
kayda bir numara verirler. Bu numara ile<br />
siz de okuma ya da yazma yapacağınız za-<br />
man kayıt numarasını kullanarak çabuk ve<br />
kolayca erişebilirsiniz. Kaydın nereye yer-<br />
leştiği ve dosya uzunluğunun bu işlemde<br />
hiçbir önemi yoktur.<br />
Şimdi önce bir sequential, sonra da ran-<br />
dom dosya örneği ile bu ayki tanıtımları-<br />
mızı tamamlayalım:<br />
SEQUENTIAL DOSYAYA YAZMA<br />
OPEN "Adresler" FOR OUTPUT AS 1<br />
Entry:<br />
PRINT<br />
INPUT "isim";Ad$<br />
INPUT "adres";Adres$<br />
INPUT "sehir";Sehir$<br />
INPUT "telefon";Tel$<br />
PRINT#l,Ad$<br />
PRINT#l,Adres$<br />
PRINT#l,Sehir$<br />
PRINT#l,Tel$<br />
x=x+l<br />
PRINT "KAYIT'x" ("Ad$") YAPILDI."<br />
PRINT "YENİ KAYIT YAPILACAK<br />
MI?"<br />
INPUT "Y/N:";Ans$<br />
IF UCASE$(Ans$)="Y" THEN Entry<br />
CLOSE<br />
PRINT "DOSYA KAPANDI. PROG-<br />
RAM SONU."<br />
DERLEYİCİLER<br />
SEQUENTIAL DOSYADAN OKUMA<br />
OPEN "Adresler" FOR INPUT AS 1<br />
ReadData:<br />
INPUT#l,Ad$<br />
INPUT#I,Adres$<br />
INPUT#l,Sehir$<br />
INPUT#l,Tel$<br />
PRINT<br />
PRINT "isim: ";Ad$<br />
PRINT "Adres: ";Adres$<br />
PRINT "Sehir: ";Sehir$<br />
PRINT "Telefon: ";Tel$<br />
IF EOF( 1 )=0 THEN ReadData<br />
CLOSE 1<br />
RANDOM DOSYAYA YAZMA<br />
OPEN "r",#l ,"AdresIer.rel",92<br />
FIELD #1,30 AS Ad$,30 AS Adres$,20<br />
ASSehir$,12ASTel$<br />
Entry:<br />
PRINT<br />
INPUT "isim";AdEntry$<br />
INPUT "Adres";AdresEntry$<br />
INPUT "Sehir";SehirEntry$<br />
INPUT "Tel ";Tel Entry $<br />
LSET Ad$=AdEntry$<br />
LSET Adres$=AdresEntry$<br />
LSET Sehir$=SehirEntry$<br />
LSETTel$=TelEntry$<br />
x=x+l<br />
PUT#l,x<br />
PRINT "KAYIT "x" ("Ad$") YAPIL-<br />
DI."<br />
PRINT "YENİ KAYIT YAPILACAK<br />
MI?"<br />
INPUT "Y/N:";Ans$<br />
IF UCASE$(Ans$)="Y" THEN Entry<br />
CLOSE 1<br />
PRINT "DOSYA KAPANDI. PROG-<br />
RAM SONU."<br />
RANDOM DOSYADAN OKUMA<br />
OPEN V,#l,"Adresler.rer,92<br />
FIELD #1,30 AS Ad$,30 AS Adres$,20<br />
ASSehir$, 12ASTeI$<br />
INPUT "ADRES NUMARASI";Nmbr<br />
GET#l,Nmbr<br />
IF EOF(l) THEN PRINT "KAYIDA<br />
ULAŞILAMIYOR." :GOTO ReadData<br />
PRINT Ad$<br />
PRINT Adres$<br />
PRINT Sehir$<br />
PRINT Tel$<br />
INPUT "BAŞKA BIR KAYIDA BAK-<br />
MAK (Y/N)";ans$<br />
IF UCASE$(ans$)o"N" THEN Read-<br />
Data<br />
CLOSE 1<br />
PRINT "DOSYA KAPANDI. PROG-<br />
RAM SONU."<br />
Bu ayki Basic tanıtımını OBJECT ko-<br />
mutlarına verdiğimiz örneklerle tamamla-<br />
dık. Gelecek ay bu köşede buluşmak dile-<br />
ğiyle, hoşçakalın...<br />
AMIGA DÜNYASI 25