Fortran ile bir dosyanın tamamını okutmak
Fortran ile programlar yazarken bir dosyadan veri okutmak çok sık yaptığımız bir iştir. Eğer dosyadaki satır sayısı biliniyorsa basit bir döngüyle kolayca okuma yapılabilir veya dosyanın ilk satırına o dosyadaki satır sayısını yazarak aynı işi dolaylı yoldan yapabilirsiniz. Ancak genel ve geçerli bir çözüm olarak dosyada kaç satır varsa otomatik olarak hepsini okuyacak bir kod yazmak en doğrusu olacaktır. Bu işlemler aşağıda vereceğim kodlar yardımıyla basitçe yapılabilir.
1 2 3 4 5 6 7 8 9 10 11 12 13 | program dosyaoku implicit none real :: veri1,veri2 integer :: okumabitti open(10,file="veridosyam.dat") do read(10,*,iostat=okumabitti) veri1,veri2 if(okumabitti.ne.0) exit ! okunan veriler ile istediğini işlemi yapabilirsiniz write(*,*) veri1,veri2 end do close(10) end program dosyaoku |
bu küçük programın ne yaptığını kısaca özetleyelim, bu örnekteki veridosyam.dat dosyası 2 sütun reel sayıdan oluşuyor o yüzden iki tane real değişken tanımladım..ayrıca dosyadaki satırların bittiğini gösterecek bir gösterge olması için okuma işleminin istatistiğinin geçirileceği bir tamsayı değişkeni tanımladım. Kodlarda gördüğünüz gibi indissiz bir do döngüsü kullanıyorum ve okuma yaparken iostat=okumabitti ifadesi ile okuma işleminin istatistiğini okumabitti değişkenine geçiriyorum. Burada okumabitti değişkeninin değeri 0 olduğu sürece hiç bir sorun yok demektir ancak eğer değer sıfır oluyorsa okuma yapılamadı demektir ve dolayısıyla bu koşul sağlandığında do döngüsünden çıkarak dosyayı kapatıyorum. Ben burada sadece verilerin dosyadan okunup ekrana yazılmasını sağladım siz okuttuğunuz verilerle istediğiniz işlemi yapabilirsiniz.