09.09.2013 Views

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

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!