Bu sayfadaki yazılar
Sayfanın metni
Sayfa 37
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 36
5 KX-10 6 K$- “YENİ KAYIT” 10 OPEN 1,8,2,“DEN,S,R” 11 OPEN 2,8,3,“DENX,S,W” 12 K-0 16 20 25 IF X$- CHRS(13) THEN 56 30 401FST< > 64 THEN 20 411FK < > KX THEN 45
42 PRİNT 2,K$ 45 PRINT 2,A$ 50 GOTO 80 56 IF K> KX THEN 60 57 PRİNT #2,K$ 60 2,A$ 70 1F ST <> 64 THEN 15 80 CLOSE | 90 1FK > KX THEN 98 95 PRİNT #2,K$ 98 CLOSE 2 99 OPEN 1,8,15,“S:DEN” 100 PRİNT #1,“R:DEN—- DENX” 110 CLOSE |
Program bir dosyadan diğerine kayıt kopyalarken devamlı olarak kaçıncı kaydı kopyaladığının çetelesini tutuyor. Eğer o sırada kopyalayacağı kayıt, ortaya girmesi gereken kayıtla aynı numarada ise önce yeni kayıt yazılıyor, sonra eski kayıt kopyalanıyor. Eğer eski dosyadaki kayıtlar bittiği halde yeni kayda sıra gelmemişse (Örneğin DEN'den sadece 3 kayıt varsa) yeni kayıt dosyanın sonuna ekleniyor. En sonda da, eski dosya silinip yeni dosyanın adı eski dosyanın adına çeviriliyor.
Artık işin sonuna yaklaştık. Bir de
M modu olduğunu bahsedip n'aptığından kısaca söz etmiştik. Şimdi onun da ayrıntısına girelim. Diskete dosyayı yazarken 1541'in içinde buffer kullanıldığını biliyorsunuz. Siz CLOSE ile dosyayı kapattığınızda bu buffer'daki en son bilgi kırıntıları da dosyaya eklenir ve directory'de dosyanın sağlam kapandığı işaretlenir. Eğer CLOSE yapmadan disketi çıkarırsanız, dosyanın sonu eksik kalacaktır ve directory'de de kapanmamış görünecektir. Bunu da, directory dökümünde, program türünün yanında çıkacak yıldız karakterinden anlayabilirsiniz. Böyle bir dosyayı okumaya kalkıştığınızda kırmızı ışık acı acı yanıp sönmeye başlayacak ve WRITE FILE OPEN hatası gelecektir. Peki bu dosyaları okumanın hiç mi yolu yok? Bilgiler disketin üzerinde olduğu halde kaybolmuş mu sayacağız? Tahmin ettiğiniz gibi hayır. Bu gibi dosyaları M modu ile açıp, kayıtlarını bir başka dosyaya göndermemiz, bu yeni dosyayı doğru dürüst kapatmamız ve eski dosyayı da silmemiz yeterli olacaktır. Tabii, disketinizde yeni dosyayı alacak yer varsa. Eğer yoksa, önce kapanmamış dosyanın ilk birkaç kaydını hafızaya okuyup sonra başka bir diskette yaratacağınız yeni bir dosyaya yazmanız gerekir. Bu yeni dosyayı güzelce kapattıktan sonra eski dosyanın kopyaladığınız ilk kayıtlarını atlayarak, sonra gelen kayıtlarından olduğu kadarını gene hafızaya okumak (M modu ile, tabii ki) ve öbür disketteki dosyayı bu kez 8 modunda açıp hafızadaki kayıtları ona ekleyip yeniden kapatmak ve bu işlemi ilk dosya bitinceye kadar devam ettirmek gerekecektir. Zahmetli bir iş, ama hiç yoktan iyidir. M modunu kullanarak küçük bir örnek verelim ve hatalı DOSYAZ2'ye kopyalayalım:
10 OPEN 1,8,2,“DOSYAL1,S,M” 20 OPEN 2,8,3, “DOSYA2Z,S,W” 30 INPUT #1,AS$ 40 PRİNT #2,A$ > 64 THEN 30 60 CLOSE 2 70 CLOSE 1 80 OPEN 1,8,15 90 PRİNT 95 CLOSE İşte bu kadar... Artık bu bilgilerin aşığı altında kendi sıralı dosyalama sisteminizi geliştirebilmeniz lazım... Relatif dosyalarda buluşmak üzere...