[问题] 读取数字文字混和档案到阵列

楼主: 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