[問題] 讀取數字文字混和檔案到陣列

作者: chaosam (#42)   2020-02-24 21:41:14
目前手上的資料檔格式長成下列這樣
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裡面取代)
感謝
作者: blc (Anemos)   2020-02-25 00:25:00
先讀成字串,確定是數字再放到陣列裡
作者: espresso1   2020-03-07 21:14:00
如一樓所述,可以開啟檔案後先以字串方式讀取,有特殊符號的地方用空白取代後,寫進另一個新的只有單純數字的檔,然後 rewind 重新讀取數字放進陣列,例如:doread (11, '(a)', iostat = ios) stringif (ios /= 0) exitdo i = 1, len_trim(string)if (string(i:i) == '>' .or. string(i:i) == '<')end dowrite (21, '(a)') trim(string)end dorewind (21)
作者: blc (Anemos)   2020-03-09 18:16:00
read(string,"(f4.2)")number ! 字串轉數字
作者: kkarthur (aa)   2020-03-26 18:03:00
read配合iostat 讀到有錯rewind後再重新處理
作者: fragmentwing (片翼碎夢)   2020-03-31 10:30:00
可以試試轉成ascii指定0~9去讀不過你的狀況可能還需要查.的ascii當然這一樣是以一樓的方法為基礎

Links booklink

Contact Us: admin [ a t ] ucptt.com