回 帖 发 新 帖 刷新版面

主题:fortran如何读取文件中指定位置的数据

请教
我想要读取fn下面的一部分数据,从fn下面的一个等号开始到第二个等号结束,数据中有可能有缺测,也有可能出现字符,应该怎么做啊,下面是文件的一部分。附件是完整数据
..........................
000 000
000 000
000 000=
G=
FN
352035 036016 346018 355040 348034 340032
337024 335027 329021 334030 292018 349026
359023 358009 309012 170017 121012 176014
197013 152011 187007 165005 113009 358011.
350026 336021 350030 348044 329032 347030
349026 349030 345028 351020 336036 328022
348029 350019 178011 247023 243038 289026
324039 318036 326034 348060 346036 329050=
...........................................................................
354021 332017 348028 345039 334027 348026
346029 347030 347029 352025 339038 333028
347032 342018 234012 249019 245040 313036
319036 324043 324039 347053 344041 329035=
..............................................................................

回复列表 (共17个回复)

沙发

一行一行读,一行一行分析~~~~

板凳

请各位大侠不吝赐教啊

3 楼

我把它当成字符串来读的,然后先找到fn,但是显示fn的位置好像不对
.......
 read(1,'(A40)')ccc
          i = scan(ccc,'fn')
        if(i.gt.0)then
          write(*,*)i
            pause
..........

4 楼

大小写敏感:)

5 楼

应该是i = index(ccc,'FN')
 但是怎么写才能让它从fn所在行的下一行开始读呢

6 楼

再Read一次呗:)

7 楼

i = index(ccc,'FN')
只是显示fn在ccc中的位置,因为fn在句首,i=0
好像这句没什么用,有什么命令可以直接定位到fn的下一行吗?

8 楼

如果Index返回的是正数,那就接着再Read一行:)

9 楼

谢谢,我已经把想要的数据提取出来了

10 楼

。。。。。。。
352035 036016 346018 355040 348034 340032
337024 335027 329021 334030 292018 349026
359023 358009 309012 170017 121012 176014
197013 152011 187007 165005 113009 358011.
350026 336021 350030 348044 329032 347030
349026 349030 345028 351020 336036 328022
348029 350019 178011 247023 243038 289026
。。。。。。。。
还是想请教一下,数据提取出来之后,我想把这些数据放到一个数组中,但是读取的时候又出现问题了
下面附上我的程序,可以帮我看看吗?

我来回复

您尚未登录,请登录后再回复。点此登录或注册