Re: [請益] FORTRAN讀檔案的問題

看板Fortran作者 (...)時間12年前 (2012/05/07 20:53), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/4 (看更多)
謝謝mouseforlove & terryys,我用判別式的方法解決讀取test_1到test_12搞定。 以下是我寫的程式: Program read Dimension POINT(3, 10000) ! 設定矩陣維度,3行N列。 ! 讀test_1 ...到 test_12 有10個檔 character(len=11) inputname ! 檔案有6個字元隨便設定大於6的數字。 10 FORMAT(1X, 3(/X, 3F10.5)) ! 輸出的檔案格式 Raw data。 do i = 1,12 ! 我要讀入12個檔案 if (i.lt.10) then write(inputname,"(a5,i1)")'test_',+i elseif (i.ge.10.and.i.lt.100) then write(inputname,"(a5,i2)")'test_',+i elseif (i.ge.100.and.i.lt.1000) then write(inputname,"(a5,i3)")'test_',+i elseif (i.ge.1000.and.i.lt.10000) then write(inputname,"(a5,i4)")'test_',+i elseif (i.ge.10000.and.i.lt.100000) then write(inputname,"(a5,i5)")'test_',+i endif open(1,file=inputname) read(1,*) POINT ! 讀進 write(*,10) POINT ! 秀在螢幕 write(*,*) "test_",i enddo Stop END ※ 引述《mouseforlove (我是瓜呆)》之銘言: : 感謝terryys : 如果希望檔名是test_0001-test_0010的格式,下面的code可改為 : do i=1,10 : write(iname,'(a5,i0.4)') 'test_',i : enddo : 這樣就不需要判別式了! : 我在處理類似test_01-test20檔名的部分,會在迴圈裏面多加判別式 : do i=1,20 : if (i.lt.10) then : write(iname,'(a6,i1)') 'test_0',i : elseif (i.ge.10.and.i.lt.100) then : write(iname,'(a5,i2)') 'test_',i : endif : enddo : 雖然這樣寫不是很聰明,不過處理數量少的資料還是可以參考一下 : 另外 : : write(inputname,"(a5,i6)")'test_',000000+i : :C 請問大家,我這一行有寫錯嗎? : 這個部分出在000000+i,如果i=5計算結果會是5,而不是000005, : inputname會變成'test_ 5' -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.20.237 ※ 編輯: py94g 來自: 140.113.20.237 (05/07 21:29)
文章代碼(AID): #1FfyNNRJ (Fortran)
文章代碼(AID): #1FfyNNRJ (Fortran)