1 Şubat 1988 Tarihli Commodore Gazetesi Sayfa 35

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

tıyoruz. Yukarıda verdiğimiz bazı de- Bişiklikleri de yaparak çeşitli dosya- Jar yaratın ve onları bu programla okumaya çalışın. Ne zaman hata çık- tığını, ne zaman beklediğinizden farklı sonuçlar oluştuğunu gözlemle- yin. 10, satırda dosyayı açarken eğer o isimde bir SEO doösyası yoksa, gene kırmızı işik yarıp sönerek size haber verecektir. Bunu programımızın içi- ne de koyabi]irdik. Örneğin; 15 ÖPEN 2,8,1 16 INPUTHZAAS B,C 17 CLOSE 2 I8 IFA < >0THEN CLOSE (:END DİKKAT'! BUPROGRAM YAN- LIŞ! Halbuki ne kadar doğruüu duru- yor, değil mi? 17. satıra kadar her şey iyi güzel... kornut kanalını açıp gelen mesajı okuyoruz. Ama 17. satırda bu kanalı KAPATMAMAMIZ gereki- yordu. Başka dosyalar açıkken bu kanalı açmak onlara bir zarar ver- mez. Ancak açık olan komut kanalı- mı kapatmanız, ayrı zamanıda ö sita- da açık duran diğer tüm dosyaların da kapanmasına yolaçacaktır. Dola- yisLile 18. satırda her şey yolunda gö- TüÜnse ve program 2Ü. satırdan devam etse bile, 1 numaralı kanal da İ7, sa- tırdakı kornut kanalının kapanmasın- dan etkilenerek kapanmış olaçağım- dan, INPUT # komutları işe yara- mayacaktı. Kıssadan hisse, komut kanalı, eğer kullanılacaksa, progra- mımn EN BAŞINDA “çılmalı ve EN SONUNDA kapanmalı, arada ellen- memelidir! Şimdi aşağıdaki programlardan bi- riyle dört satırlık bir sıralı dosya ya- Tattığımızı düşünelim: 10 ÖPEN 1,8,2,“DEN,S,W” 20 PRİNT #1,“SATIRI” 30 PRİNT #1,“SATIRİ” 40 PRİINT#4#1,“SATIR3I” 50 PRİNT #1,“SATIRA” 60 CLOSE | veya 10 ÖPEN 1,8,2,“DEN,5S,W*” 20 PRİNT #1,“SATIRI,SATIRZ” 36 PRİNT# 1,“SATIR3,SATIR4” 40 CLÖSE 1 Şimdi de butu öokuyacak çeşitli programlar görelim., Bunlar 1541 ile ilgili clmaktan çok, 6â4—154d1 arasın- daki bilgi alışverişini sağlayacak programlarma tekniklerinin küçük bir BösLerisi... Diske! LAT gTe T KU yi Zİş) az bilgisayarınız kadar karmaşık ve mükem- mel. Ö'nu iyi ve verim- f kullanmak için çok şey öğrenmeniz gerek- . Ancak bundan son- ra 1541'inizi tanıyabi- lirsiniz. 10 ÖPEN İi,8,2,“DEN,5S,R” 20 IİNPUT # İ AŞ 30 İNPUT#1,B$ 40 INPUT #1,C5 50 INPUT #1,D$ 60 PRINT A$ 70 PRİNT B$ &ö PRINT C$ 90 PRİNT D$ 100 CLOSE | veya 10 ÖPEN 1,8,2,“DEN,5,R” 20 INPUT# 1,A$,B$,C$,D$ 30 PRİNT A$,B$,C$,D$ 40 CLOSE İi (Bu programıtı kötülüğü, tek satır- da yapılan INPUT #'un tüm değiş- kernlerinin taplam karakter sayısının 88'ı geçmemesi gerektiği. Dolayısı ile, A BE4 CA Dİ'in uzunluğu 88'- den büyükse, başımız belada demek- tir.) 5. DIM AS4) 10 ÖOPEN İi,8,2, “DEN,5,R” 15 FOR1T—1TO4 20 INPUT #L ASI) 30 NEXT 1 4Ü FORİ-1 TO4 5S0 PRİNT ASIŞ 60 NEKT I 70 CLÖSE | veya 10 ÖPEN 1 ,8,2,“DEN,5,R” 20 INPUT #1,A$ 30 PRINT A$ dÖ IF ST« > 64 THEN 20 SÜ CLÖSE 1 Tüm bunlarda INPUT # kullan- dık ve bu kamutun eksik yanlarını bi- Hyoruz. Bunu düzeltmenin yolunun da GET #'den geçtiğini hatırlıyor ol- malısınız., GET # ile kayıtları okur- ken kayıtlar arasındaki ayırımı biz yapacağımız için hangi karakterin Tahta perde rolünü oynayacağına ka- tar vermek bizim işimiz. Eğer sade- ce $ÜD byte'imi ayırıcı olarak kabul edersek, yukarıda verdiğimiz dürt sa- tırlık dosya yaratan iki programın so- nuçları farklı olacak demektir. INPUT & ile her ikisinden de dör1 kayıt okuduğumuz halde, GET #& ile okuduğumuzda birincisi dört, ikinçişi ise iki kayıt halinde görünecektir. Şimdi böyle bir okumayı yapan prog- rTamı görelim: 10 ÖPEN 1,8,2,“DEN,5,R” 1$ AŞ-A ” 20 GETH#1,N& 25 1FE X$ CHRS$(13) THEN âü 3Ü A$- A$+ X$ dÖTESİ < - 64 THEN 20 45 PRINT A$ 50 CLOSE | 55 END ğ0 PRINT A$ Y0 1F ST < > 64 THEN 15 80 CLÖSE | Görüldüğü gibi dasyayı karakter karakter okuyup kayıtları oluşturu- yoruz. Bu arada devamlı ayırıcı byre'in ve dosya sonunun gelip gel- mediğinin de kontrolunu eksik etmi- yoruz. Böylece INPUT # için 88 olan karakter sayısı sınırını 255'e çıkarmış oluyoruz. 255'in nedeni, BASIC'te bir değişkenin en fazla 255 karakter alabilmesi. Bunun için elimizden bir şey gelmez, Disketin üzerinde daha önçeden yaratılmış bir sıralı dosyanın arkası- na yeni kayıtlar eklemek istediğimiz- de işe A modunu kullanacağımızı söylemiştik. Şimdi DENEME döüsya- mıza dört satır daha ekleyelim: 10 ÖPEN 1,8,2,“DENEME,S,A” 20 PRİNTH#1,“DONALD” 30 PRİNT#1,“DUCK” 40 PRİNT #1, “MICKEY” 50 PRİNT #1,“MOUSE” 6Ü CLOSE | 1Ö. satırın sonundaki  paramet- resine dikkat! Şırmdı de bu dösyayı en son verdi- ğimiz GET # metödü ile öküyün. Ta- bil dosya adı olarak DEN yerine DE- NEME kullanılacak. Yeni satırların dosyanın arkasına eklendiğini göre- ceksiniz, Ama diyelim ki dosyanın ortasına bir kayıt eklemek istediniz. Bunu, ya dosyanın tamamın, bilgisayarın hafı- zasına okuyup istediğiniz sırada geri 35

Bu sayıdan diğer sayfalar: