1 Eylül 1988 Tarihli Commodore Gazetesi Sayfa 54

1 Eylül 1988 tarihli Commodore Gazetesi Sayfa 54
Metin içeriği (otomatik olarak oluşturulmuştur)

AMIĞA SEYFETTİN ÇANKAYA Bu yazıda herhangi bir dosyanın uzunluğunu bulan bir program inceleyeceğiz. Program daha önceki yazılarımız- da gördüğümüz birçok bilgiyi içermektedir. Programın amacı uzunluğunu merak ettiğiniz bir dosyanın bayt ola- rak öğrenmenizi sağlamaktır. Aynı işi AMIGA-DOS kul- lanarak ta yapabilirsiniz. Bunu sağlayan komut ise 'İs'dir. Bu komut dosya uzunluğunu doğrudan file kütüğünden okumaktadır. Bizim programın özelliği uzunluğu doğru- dan o dosyaya erişerek hesaplamasıdır. Bunun avantajı file kütüğüne girilerek dosya uzunluğunun değiştirilme- si durumunda bile programın gerçek dosya büyüklüğü- nü doğru olarak hesaplayabilmesidir. Program fsıze dosyal şeklinde kullanılmaktadır. Böy- lece dosyal isimli dosyanın büyüklüğü bayt olarak he- saplanmaktadır. İstenildiğinde birden fazla dosya ismi girilebilir. Bu durumda dosyalara ilişkin değerler alt al- ta sıralanacaktır. Eğer dosya ismi hatalıysa program bunu bir hata mesajıyla belirtir. 1) PROGRAMIN İNCELENMESİ Daha önceki yazılarda anlatılan main (argc, argv) ifa- desi klavyeden gerilin bilgilerin programa aktarılmasına yaramaktadır. Girilen her bir kelime ayrı ayrı işleme ko- nur. Her kelime arasında boşluk bulunmalıdır. Kelime- lerin sayısı teorik olarak sınırsızdır. Kelime sayısı argc ile belirlenmiştir. Bu bir tamsayı olduğundan bir alt sa- tırda INT olarak tanımlanmıştır. Kelimelerin oluşturdu- ğu karakter dizileri argv ile tanımlıdır *Girilecek kelime- lerin sayısı belli olmadığından bu diziler programda po- inter olarak char *argv| | olarak tanımıştır. FILE *fp, *fopen( ) yeni inceleyeceğimiz bir kullanım, FİLE dosya işlemi yapılacağını ifade etmektedir. *fopenl ) pointer fonksiyondur. Kullanımı fopen (*dosya ismi, “işlem türü') şeklindedir. Burada işlem türü olarak 'V kullanılmıştır. Dosya okuma işlemini göstermektedir. Benzer olarak *s” yazma işlemidir. Programdaki fp ise

Bu sayıdan diğer sayfalar: