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

看板Fortran作者 (阿瑞)時間12年前 (2012/02/06 21:39), 編輯推噓1(104)
留言5則, 2人參與, 最新討論串3/4 (看更多)
我想再請問一下 若是現在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新手 試了兩天還是苦思不出寫法 還請各位賜教 謝謝各位 ※ 引述《kkarthur (aa)》之銘言: : ※ 引述《btoker (阿瑞)》之銘言: : : line,framesections, point coordinates三個都算是標題 : : 我想只抓framesections裡的八個frame : : 輸出答案為" 8 " : : 請問是否有指令可以去做判別"我要從哪裡開始讀" : : 或是" 讀到空白處結束" 並計算個數 : : 謝謝各位 : CHARACTER(LEN=80) LLEN : INTEGER :: IERR,COUNT : OPEN(UNIT=11,FILE="xx.txt") : COUNT = 0 : DO WHILE(.TRUE.) : READ(11,"(A80)",IOSTAT=IERR) LLEN : IF(IERR==-1) EXIT : IF(LLEN(1:13)=="framesections") THEN : DO WHILE(.TRUE.) : IF(IERR==-1) EXIT : READ(11,"(A80)",IOSTAT=IERR) LLEN : IF(LLEN(1:5)=="frame") THEN : COUNT = COUNT + 1 : END IF : END DO : END IF : END DO : 試試看吧 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.165.84.114

02/07 23:36, , 1F
如果26一定會出現再最後一列的話,那就是用字串讀入最
02/07 23:36, 1F

02/07 23:37, , 2F
後一列,然後用index搜尋"26" 或直接用if判斷該讀入字
02/07 23:37, 2F

02/07 23:38, , 3F
串的第9到第十字元是否為26
02/07 23:38, 3F

02/08 02:13, , 4F
我會去檢查第九或是第十個字元是不是引號先 然後用不同的
02/08 02:13, 4F

02/08 02:14, , 5F
然後再決定我的數字是在第八位或是第八第九位
02/08 02:14, 5F
文章代碼(AID): #1FBzWbhI (Fortran)
討論串 (同標題文章)
文章代碼(AID): #1FBzWbhI (Fortran)