Re: [問題] 指定讀取文字資料

看板Fortran作者 (aa)時間12年前 (2012/02/08 16:09), 編輯推噓1(103)
留言4則, 2人參與, 最新討論串4/4 (看更多)
※ 引述《btoker (阿瑞)》之銘言: : 我想再請問一下 : 若是現在txt檔如下 : point "w1" section="rectangle" : point "w2" section="rectangle" : point "w3" section="rectangle" : point "w4" section="rectangle" : point "w6" section="rectangle" : point "w7" section="rectangle" : point "w8" section="rectangle" : point "w9" section="rectangle" : point "w15" section="rectangle" : point "w16" section="rectangle" : point "w26" section="rectangle" : 正常來說我要的答案是總列數,即11 : 問題是程式輸出的數據會無規律看它心情跳號= = : 不過慶幸的是txt裡已經是由小到大排序好的 : 我現在只能用kk大的方式讀出列數,即上面顯示的11列 : 還有其他方式可以讀到最後一列裡 26 這個數字嗎? : 弱者我只是個fortran新手 試了兩天還是苦思不出寫法 : 還請各位賜教 : 謝謝各位 PROGRAM EE IMPLICIT NONE CHARACTER(LEN=80) :: TXT,T1,T2 INTEGER :: FIOS,I,NUM OPEN(UNIT=11,FILE="yy.txt") DO WHILE(.TRUE.) READ(11,"(A80)",IOSTAT=FIOS) TXT IF(FIOS==-1) THEN EXIT END IF DO I=1,75 IF(TXT(I:I+5)=="point ") THEN READ(TXT,*) T1,T2 T2 = TRIM(T2(2:)) READ(T2,*) NUM WRITE(*,*) NUM EXIT END IF END DO END DO CLOSE(11) END PROGRAM EE -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.79.103

02/08 16:58, , 1F
我會比較喜歡直接在IF(TXT(I:I+5)=="point ") 下面使用
02/08 16:58, 1F

02/08 16:58, , 2F
READ(TXT(I+8:INDEX(TXT,"section")-3),*) NUM
02/08 16:58, 2F

02/08 17:00, , 3F
可以省掉幾行程式碼
02/08 17:00, 3F

02/10 10:25, , 4F
推callmei,學到了~
02/10 10:25, 4F
文章代碼(AID): #1FCYt7td (Fortran)
討論串 (同標題文章)
文章代碼(AID): #1FCYt7td (Fortran)