Fortran Coder

查看: 7371|回复: 5
打印 上一主题 下一主题

[文件读写] 如何实现数据定位读入?请求帮忙,谢谢大神们

[复制链接]

13

帖子

2

主题

0

精华

入门

F 币
74 元
贡献
44 点

规矩勋章

跳转到指定楼层
楼主
发表于 2015-3-8 16:53:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我要读入的数据格式如下:
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'了,不知道为什么还是会换行
所以来请教一下。

分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

712

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
607 元
贡献
311 点

新人勋章爱心勋章水王勋章元老勋章热心勋章

沙发
发表于 2015-3-8 17:24:35 | 只看该作者
你这到底是读 78 行,还是 78 列?

13

帖子

2

主题

0

精华

入门

F 币
74 元
贡献
44 点

规矩勋章

板凳
 楼主| 发表于 2015-3-8 20:56:09 | 只看该作者
楚香饭 发表于 2015-3-8 17:24
你这到底是读 78 行,还是 78 列?

读7、8列的数据,read(101,'(T8,T7,A2)',advance='no')time(i),其中T是用来水平定位的,代码读取在输入缓冲区的第 7个~第8 个字符中的数值,那个写advance='no'为了是不换行继续读,但是实际是会换行,不知道问题是什么

13

帖子

2

主题

0

精华

入门

F 币
74 元
贡献
44 点

规矩勋章

地板
 楼主| 发表于 2015-3-8 21:32:18 | 只看该作者
问题解决了,可以分两次读入,虽然麻烦点但是这样就不冲突了,

712

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
607 元
贡献
311 点

新人勋章爱心勋章水王勋章元老勋章热心勋章

5#
发表于 2015-3-8 22:14:12 | 只看该作者
本帖最后由 楚香饭 于 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


不知是否符合你的想法??

13

帖子

2

主题

0

精华

入门

F 币
74 元
贡献
44 点

规矩勋章

6#
 楼主| 发表于 2015-3-12 20:31:12 | 只看该作者
楚香饭 发表于 2015-3-8 22:14
[mw_shl_code=fortran,true]Program www_fcode_cn
  Implicit None
  integer :: i

恩恩,完全满足,你这个方法更好些
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-4-27 17:47

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表