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

看板Fortran作者 (林美環)時間11年前 (2013/03/04 17:46), 編輯推噓2(2029)
留言31則, 6人參與, 最新討論串1/2 (看更多)
各位前輩您好 我有先爬過文但是無奈資質不好實在是有看沒有懂.. 關於大量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 這樣的方法可行嗎? 我看前面的文章有稍微設定過 但是怎麼設定都錯.... 謝謝各位前輩 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.13.138.85

03/04 19:31, , 1F
雙層迴圈?
03/04 19:31, 1F

03/05 10:24, , 2F
重點是怎麼樣把你要讀/寫的檔名用迴圈生出來。
03/05 10:24, 2F

03/05 11:14, , 3F
能請各位稍微指點我一下嗎?關於設定出迴圈的 感激不盡
03/05 11:14, 3F

03/05 14:27, , 4F
DO I=1,3
03/05 14:27, 4F

03/05 14:28, , 5F
WRITE(AA,"(A2,I1,A4)") "5.",I,".txt"
03/05 14:28, 5F

03/05 14:28, , 6F
其實你想知道的是數字變檔名 請查閱 internal file內部檔
03/05 14:28, 6F

03/05 14:28, , 7F
OPEN(UNIT=11,FILE=AA)
03/05 14:28, 7F

03/05 14:29, , 8F
WRITE(AA,"(A2,I1,A4)") "6.",I,".txt"
03/05 14:29, 8F

03/05 14:29, , 9F
OPEN(UNIT=11,FILE=AA)
03/05 14:29, 9F

03/05 14:29, , 10F
WRITE(AA,"(A2,I1,A4)") "7.",I,".txt"
03/05 14:29, 10F

03/05 14:29, , 11F
OPEN(UNIT=11,FILE=AA)
03/05 14:29, 11F

03/05 14:30, , 12F
END DO
03/05 14:30, 12F

03/05 14:30, , 13F
前面UNIT記得要換, 貼太快打錯
03/05 14:30, 13F

03/05 15:17, , 14F
所以OPEN是UNIT=11 12 13這樣嗎?
03/05 15:17, 14F

03/05 16:11, , 15F
然後開完之後還要再CLOSE(11)
03/05 16:11, 15F

03/05 16:16, , 16F
每個開完都要關掉的意思嗎?
03/05 16:16, 16F

03/05 16:17, , 17F
那就是我今天有三個TXT檔 要CLOSE(11) CLOSE(12)
03/05 16:17, 17F

03/05 16:17, , 18F
CLOSE(13) 對嗎?
03/05 16:17, 18F

03/05 16:28, , 19F
對..
03/05 16:28, 19F

03/05 16:34, , 20F
kkarthur前輩 太感謝你了!
03/05 16:34, 20F

03/05 17:27, , 21F
最後再請問一個問題 AA是應該定義在哪裡?
03/05 17:27, 21F

03/05 17:28, , 22F
我定義在INTEGER中是失敗的 很謝謝你的講解 太感謝了
03/05 17:28, 22F

03/05 18:19, , 23F
我設定好了 但是在跑動的時候出現程序無法儲存檔案
03/05 18:19, 23F

03/05 18:19, , 24F
請問這大概是什麼因素造成的呢?
03/05 18:19, 24F

03/05 19:27, , 25F
AA是字串 CHARACTER(LEN=30)
03/05 19:27, 25F

03/05 19:29, , 26F
檔案開完之後,請"使用"完再關掉
03/05 19:29, 26F

03/05 21:44, , 27F
所以有可能是因為我沒有關閉造成的問題 了解了
03/05 21:44, 27F

03/06 11:17, , 28F
我找出問題了 原來是設定格式的問題
03/06 11:17, 28F

03/06 11:17, , 29F
可以請問"(A2,I1,A4)"是什麼意思嗎?
03/06 11:17, 29F

03/06 11:34, , 30F
這是輸出/入格式,Ax是x個字元的字串,Ix是x位整數
03/06 11:34, 30F

03/06 13:29, , 31F
我發完文以後有去查到了 謝謝您的講解
03/06 13:29, 31F
文章代碼(AID): #1HD6ra8A (Fortran)
文章代碼(AID): #1HD6ra8A (Fortran)