2014-06-24 29 views
6

İşaretçiyi ilerletmeden üç gerçek sayı içeren bir dosyada bir satır okumak istiyorum. Bu yüzden yazdım:Serbest biçimli Fortran'da okunmayan okuma

read(TXT, *, ADVANCE='NO') (numbers(i),i=1,3) 

Ancak, ben bir hata mesajı söyleyerek var (TXT 80 arasında bir değere sahiptir dosyamı temsil değişkendir):

"hata # 6568: ÖNCEDEN bu şekilde kullanılması, BOYUT veya EOR belirteci geçersiz. "

Doğru yapmak için nasıl yazmalıyım?

Teşekkürler.

+0

Bir sonraki satıra geçmek istememenizin sebebi, satırda okunacak daha fazla veri olması durumunda, genel bir çizgi "(a)" biçimini kullanarak tüm satırı bir dizeye okumaktır. sonra tekrar tekrar dizeden okunur. – Fortranner

cevap

8

advance = 'no' özelliğini yalnızca açık bir biçimde kullanabilirsiniz. Nedeni aşağıdaki gibidir: advance = 'Hayır' sadece bir sonraki kayda geçmekten kaçınıyor (dosya işaretçisinin son okuma değerinden hemen sonra ilerlediğine dikkat edin); ancak yönlendirilmiş bir liste ile (biçim *), okuma ifadeniz kaç tane kayıt içerdiğini bilmez (üç sayı örneğin dört satırda yazılabilir).

+0

Ayrıca, "ADVANCE" öğesinin yalnızca harici bir birimden okumak için kullanılabileceğini unutmayın. Bir karakter dizisinden okumaya çalışırken yanmıştım. – patrickvacek