1 Şubat 1988 Tarihli Commodore Gazetesi Sayfa 34

1 Şubat 1988 tarihli Commodore Gazetesi Sayfa 34
Metin içeriği (otomatik olarak oluşturulmuştur)

4 lrelative dosya açık olabilir. İki re- lative dasya açık olamaz, Dosya adının 16 karakrterlik bir isim olacağını biliyorsunuz. Dosya türü yerine de $, U, P,R harflerinden biri gelmeli. Biz seğnen- tial dosya kullanacağımız için 5 har- fini koyacağız. Mod ile de, dosyanın ne amaçla açıldığını belirliyoruz. W Çwrite, yaz- ma), R (read, okuma), A (append, ekleme) ile mad belirtilir. Bir de M modu vardır ki, bu mod ile daha ön- ce açılmış ve döğrüu kaparılmamış, dolayısıyla da diğer modlarda akuna- mayan dosyaların okunması mürm- kün olur. Runa daha sonra geleceğiz. Örneğin OPEN 1,8,2,"DENEME, S,W”' ile yazmak için DENEME adı altında bir seguential doşya yaratırız. Bu dosyalara yazma işleminin de PRİNT ile yapıldığını biliyoruz. Hadi bir örnek yapalım... 10 ÖOPEN 1,8,2, “DENEME,S, W" 20 PRİNT #1,“TUNA” 30 PRİNI #1,“ERTEMALP” 40 PRİNT #1,“AYHAN” | 50 PRİNT g1,“KALAYLIOĞLU” 60 PRİNT#İ,“ZİYA” 70 PRİNT #1,“BAYMAN” $0 PRİNT #1,“TURHAN” 90 PRİNT #İ, “TANDOĞMUŞ” IĞ0 CLÖOSE | Gördüğünüz gibi, DENEME adı altında bir dosya açtık ve içine sekiz değişik bilgi yazdık. Bunların her bi- rini bir bilgi alanı, isim ve sayadını bir kayıt, DENEME'yi de dosya ola- 34 rak görebiliriz. Eğer DISKMÜÖN ko- layda ise, bu dosyanın içeriğine bir göz atın. Her bilgi alanının arasında (örneğin TUNA He ERVJAMALP arasında ve ERTEMALP ile AY- HAN arasında) $0D, yani RETURN karakter kodunu göreceksiniz. Eğer 20-90 arası satırların her birinin s0- nunda noktalı virgül olsaydı bunlar olmayacaktı. Ancak bu 13 değerini taşıyan byrte'lar bilgi birimlerini bir- birinden ayıran tahta perdelerdir. Onlar olmasaydı, dosyaladığımız bil- gileri tekrar okumamız ve özellikle okuduklarımızı tekrar ilk yazıldıkla- n şekilde parçalara bölmemiz çok zör olurdu. Eğer bu programı çalıştırırken kul- landığınız disketin üzerinde türü ne olursa olsun, adı DENEME alan bir başka dosya önceden varsa, kırmızı işık yanıp söneçek ve PRİNT # ko- mutları bir işe yaramayacaktır. Bu durumda ya eski dosyayı silin, ya da DENEME yerine başka bir ad kulla- nın. Şimdi de bu dosyayı tekrar okuya- hm... Okuma işlemi IİNPUT # ile olacaktır. Ancak INPUT #'un sade- ce 88 karakterlik bilgsileri okuyabil- diğini hatırlayalım. Eğer yukarıdaki programda aşağıdaki g#ibi bir ekleme olsaydı, daha ilk kayıdı okumaya kal- kıştığımızda hata oluşacaktı! 12 FOR I1-1 TO 100 13 PRİNT #İ,“A*; 14 NEKT I 15 PRİNT #1 Bu değişiklik ile, aralarında başka byte bulunmayan 100 adet “A*'yı ar- ka arkaya yazıyoruz. Sonra da bu 100 byte'lik bilgiyi TUNA'dan ayırmak için 15. satırda boş bir PRINT#İ gönderiyoruz. Bu, bize istediğimiz' SOD byte'ini yarataçaktır. Bir başka sorun da, bizim çok nor- mal olduğunu düşünerek virgül ve iki nakta üstüste gibi karakterleri bir bil- gi biriminin içinde kullanmamız ola- caktır. Örneğin; 20 PRİNT “İSİM:TUNA, ERTEMALP” gibi bir şatır olşaydı, İNPUT # ka- mutcu bunu üç defada okuyabilecek- ti. Önce İSİM ilk bilgi birimi olarak karşımıza çıkacaktı. Sonra da TUNA ve ERTEMALP. Demek kı, *©,” ve *1” karakterleri de $OD byte'ı 1le aynı işi görüyorlar. Şimdi deminki programımızın ilk halıni kabul edip yaratılan dosyayı INPUT ilenasıl okuduğumuza bir bakalım. 10 ÖPEN 1,8,2, “DENEME,5,R” 20 INPUT #1,AŞ 30 PRİINT A$ 40 IF ST < > 64 THEN 20 50 CLOSE |1 Görüldüğü gibi önce yazma mü- dunda aynı doşyayı bir daha açıyor, sonra da sonuna kadar okuyup satır salır yazıyoruz. dÜ, satırda ST adlı STATUS değişkenini köntrol edip dosyanın bitip bitmediğini anlayabi- liyoruz. En sonda da dosyayı kapa-

Bu sayıdan diğer sayfalar: