[問題] 關於大量讀寫程式的問題

作者: maylin7907 (林美環)   2013-03-04 17:46:10
各位前輩您好
我有先爬過文但是無奈資質不好實在是有看沒有懂..
關於大量OPEN檔和READ檔以及WRITE的部分
我明白這裡所有的檔都能夠一個一個開啟
但是資料過於大量 將近一萬筆左右
能否有更有效率的方式去撰寫FORTRAN程式
其中能否假設一個DO迴圈
使得文件檔READ完,WRITE出來後
再讓他自動READ類似檔名再依序WRITE?
例如我有5.1.txt,5.2.txt,5.3.txt
6.1.txt,6.2.txt,6.3.txt 這六個檔案
能不能設定一個迴圈
READ 5.1.txt和6.1.txt後
輸出到7.1.txt
然後再依序READ 5.2.txt和6.2.txt
輸出到7.2.txt
這樣的方法可行嗎?
我看前面的文章有稍微設定過 但是怎麼設定都錯....
謝謝各位前輩
作者: jubilee2 (3321)   2013-03-04 19:31:00
雙層迴圈?
作者: blc (Anemos)   2013-03-05 10:24:00
重點是怎麼樣把你要讀/寫的檔名用迴圈生出來。
作者: maylin7907 (林美環)   2013-03-05 11:14:00
能請各位稍微指點我一下嗎?關於設定出迴圈的 感激不盡
作者: kkarthur (aa)   2013-03-05 14:27:00
DO I=1,3WRITE(AA,"(A2,I1,A4)") "5.",I,".txt"
作者: wtula (三平三平)   2013-03-05 14:28:00
其實你想知道的是數字變檔名 請查閱 internal file內部檔
作者: kkarthur (aa)   2013-03-05 14:28:00
OPEN(UNIT=11,FILE=AA)WRITE(AA,"(A2,I1,A4)") "6.",I,".txt"OPEN(UNIT=11,FILE=AA)WRITE(AA,"(A2,I1,A4)") "7.",I,".txt"OPEN(UNIT=11,FILE=AA)END DO前面UNIT記得要換, 貼太快打錯
作者: maylin7907 (林美環)   2013-03-05 15:17:00
所以OPEN是UNIT=11 12 13這樣嗎?
作者: kkarthur (aa)   2013-03-05 16:11:00
然後開完之後還要再CLOSE(11)
作者: maylin7907 (林美環)   2013-03-05 16:16:00
每個開完都要關掉的意思嗎?那就是我今天有三個TXT檔 要CLOSE(11) CLOSE(12)CLOSE(13) 對嗎?
作者: kkarthur (aa)   2013-03-05 16:28:00
對..
作者: maylin7907 (林美環)   2013-03-05 16:34:00
kkarthur前輩 太感謝你了!最後再請問一個問題 AA是應該定義在哪裡?我定義在INTEGER中是失敗的 很謝謝你的講解 太感謝了我設定好了 但是在跑動的時候出現程序無法儲存檔案請問這大概是什麼因素造成的呢?
作者: kkarthur (aa)   2013-03-05 19:27:00
AA是字串 CHARACTER(LEN=30)檔案開完之後,請"使用"完再關掉
作者: maylin7907 (林美環)   2013-03-05 21:44:00
所以有可能是因為我沒有關閉造成的問題 了解了我找出問題了 原來是設定格式的問題可以請問"(A2,I1,A4)"是什麼意思嗎?
作者: terryys (terry)   2013-03-06 11:34:00
這是輸出/入格式,Ax是x個字元的字串,Ix是x位整數
作者: maylin7907 (林美環)   2013-03-06 13:29:00
我發完文以後有去查到了 謝謝您的講解

Links booklink

Contact Us: admin [ a t ] ucptt.com