看板 Fortran 關於我們 聯絡資訊
目前手上的資料檔格式長成下列這樣 2222 33.02 2.6 7.7 2222 33.02 2.6 7.7 2222 33.02 >0 7.7 2222 33.02 2.6 <0 裡有>或<的符號 但是隨機出現 由於陣列必須宣告形式 好像無法讀浮點數又讀文字 想請問如何將檔案內的文去除或取代成9999之類 好讓檔案可以讀入陣列 (目前做法是先丟到EXCEL裡面取代) 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.137.171.145 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Fortran/M.1582551676.A.868.html
blc: 先讀成字串,確定是數字再放到陣列裡 02/25 00:25
espresso1: 如一樓所述,可以開啟檔案後先以字串方式讀取, 03/07 21:14
espresso1: 有特殊符號的地方用空白取代後, 03/07 21:14
espresso1: 寫進另一個新的只有單純數字的檔, 03/07 21:15
espresso1: 然後 rewind 重新讀取數字放進陣列,例如: 03/07 21:15
espresso1: do 03/07 21:16
espresso1: read (11, '(a)', iostat = ios) string 03/07 21:16
espresso1: if (ios /= 0) exit 03/07 21:17
espresso1: do i = 1, len_trim(string) 03/07 21:17
espresso1: if (string(i:i) == '>' .or. string(i:i) == '<') 03/07 21:17
espresso1: end do 03/07 21:18
espresso1: write (21, '(a)') trim(string) 03/07 21:18
espresso1: end do 03/07 21:18
espresso1: rewind (21) 03/07 21:18
blc: read(string,"(f4.2)")number ! 字串轉數字 03/09 18:16
kkarthur: read配合iostat 讀到有錯rewind後再重新處理 03/26 18:03
fragmentwing: 可以試試轉成ascii指定0~9去讀 03/31 10:30
fragmentwing: 不過你的狀況可能還需要查.的ascii 03/31 10:31
fragmentwing: 當然這一樣是以一樓的方法為基礎 03/31 10:32