Fortran Coder

标题: 如何实现数据定位读入?请求帮忙,谢谢大神们 [打印本页]

作者: 笨蛋哈哈    时间: 2015-3-8 16:53
标题: 如何实现数据定位读入?请求帮忙,谢谢大神们
我要读入的数据格式如下:
2012-01-01              00:00:00                   3.800000       12.00000   
2012-01-01              00:10:00                   3.900000       12.00000   
2012-01-01              00:20:00                   4.000000       12.00000   
2012-01-01              00:30:00                   4.100000       9.000000

读入要求是读入7,8列所在的数据,和后面的 00:30:00                   4.100000       9.000000
我写的读入代码是
        read(101,'(T8,T7,A2)',advance='no')time(i)                     !表示读取第七,八列的两个字符,并且不换行
        write(102,*)time(i)
        read(101,*,iostat=istat)date1(i),date(i),vel(i),angl(i)         !继续读取剩下的数据,其中date1(i)为存取七,八列后面的数

        write(102,*)date(i),vel(i),angl(i)
这样编写代码后读取数据会换行,第一行的00:00:00                   3.800000       12.00000读不到,但是明明使用了advance='no'了,不知道为什么还是会换行
所以来请教一下。


作者: 楚香饭    时间: 2015-3-8 17:24
你这到底是读 78 行,还是 78 列?
作者: 笨蛋哈哈    时间: 2015-3-8 20:56
楚香饭 发表于 2015-3-8 17:24
你这到底是读 78 行,还是 78 列?

读7、8列的数据,read(101,'(T8,T7,A2)',advance='no')time(i),其中T是用来水平定位的,代码读取在输入缓冲区的第 7个~第8 个字符中的数值,那个写advance='no'为了是不换行继续读,但是实际是会换行,不知道问题是什么
作者: 笨蛋哈哈    时间: 2015-3-8 21:32
问题解决了,可以分两次读入,虽然麻烦点但是这样就不冲突了,
作者: 楚香饭    时间: 2015-3-8 22:14
本帖最后由 楚香饭 于 2015-3-8 22:20 编辑

[Fortran] 纯文本查看 复制代码
Program www_fcode_cn
  Implicit None
  integer :: i
  character(len=2) :: time(4)
  character(len=10) :: date1(4) , date(4) , vel(4) , angl(4)
  Open(12,File='t.txt')
  Do i = 1 , 4
    read(12,'(T7,A2)',advance='no') time(i)
    read( 12 , * ) date1(i),date(i),vel(i),angl(i)
    write(*,*) time(i) , date1(i),date(i),vel(i),angl(i)
  End Do
End Program www_fcode_cn


这个代码读出的结果是:
1-01        00:00:00  3.800000  12.00000
1-01        00:10:00  3.900000  12.00000
1-01        00:20:00  4.000000  12.00000
1-01        00:30:00  4.100000  9.000000


不知是否符合你的想法??
作者: 笨蛋哈哈    时间: 2015-3-12 20:31
楚香饭 发表于 2015-3-8 22:14
[mw_shl_code=fortran,true]Program www_fcode_cn
  Implicit None
  integer :: i

恩恩,完全满足,你这个方法更好些




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2