2009-03-02 16 views
1

Biçimlendirilmiş bir 2D dizisini diskteki bir dosyadan bir değişkene okumaya çalışıyorum. Yazma işlemim var, ki bu oldukça basit, ama aynı dosyayı okumakta takılıyorum. Birisi bana bunun nasıl yapılacağına dair bir örnek/yazmayı işaret edebilir mi? Ağ doygun görünüyor, ancak yararlı bir makale bulamıyorum.Biçimlendirilmiş bir diziyi bir dosyadan bir değişkene okuma

Bu arada, biçimlendirilmiş dosyanın nedeni, yapılandırma seçeneklerini içerdiğinden, kullanıcının okunabilir durumda tutulmasıdır.

cevap

2

Derleyiciyle birlikte gelen fiziksel belgelerin genellikle Fortran derleyicileri için en okunabilir ve en bilgilendirici olduğunu öğrendim. Tabii ki, g95 veya bunun gibi bir şey kullanıyorsanız bir seçenek değil.

Burada, okunan ifadenin teknik özelliklerinin çoğunu açıklayan bir pretty good page bulunmaktadır. Özellikle, "Biçim Tanımlayıcılarını Biçimlendirme" bölümüne bakın - çok kullanışlı.

Bir yan notda, tam bir yazma biçimi dizginiz varsa, bunu genellikle bir okuma dizesi dizisine yazabilirsiniz, ancak WRITE(*,*) veya bunun gibi bir şeyle yazıyorsanız, muhtemelen geçerli olmayacaksınız kullanılacak format formatı yazılır.

Son olarak, eğer insanlar bunu okuyabilmeleri için ASCII'ye döküyorsanız ve geriye dönük uyumluluk konusunda endişelenmenize gerek yoksa, sabit uzunluktaki alanlar olarak her şeyi dışarı atmayı düşünün. Geri okunması gerekenler.

Maalesef daha iyi çevrimiçi kaynaklar düşünemiyorum, ancak Fortran web üzerinde çok az belgesiz. Bir kez g95'in Fortran referans belgelerine sahip olup olmadığını kontrol ettiğimi hatırlıyorum, ancak çoğunlukla yalnızca kendi özel derleyici ayarlarında dokümanları var. Yine de iyi şanslar!

+0

Teşekkür ederim Mike, aslında sadece bu sayfadan okumuştum. Sanırım yakınım. Sadece bir kayıt sonu hatasıyla karşılaşıyorum. Ahh, yeni bir dilin eğlencesi :) – ccook

+0

özür dilerim, dosya sonu – ccook

+0

hatasıdır Bir set kayıt uzunluğu belirtirseniz, muhtemelen gerekmez - okuma ve yazma ASCII genellikle ile yapılmaz Kayıt boyutları, ancak her zaman istisnalar vardır :) Eğer gerektiğini düşünmeden önce EOF isabet ediyorsanız, bu farklı bir hikaye. – Mike

İlgili konular