Fortran Coder

查看: 13483|回复: 3
打印 上一主题 下一主题

[文件读写] 读取txt文件中指定列的数据

[复制链接]

57

帖子

15

主题

0

精华

熟手

F 币
242 元
贡献
166 点
跳转到指定楼层
楼主
发表于 2020-3-6 10:32:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有一个18627行,15列的txt文件,需读取其中第5,6,7行的数据,如何用read语句实现
分享到:  微信微信
收藏收藏1 点赞点赞 点踩点踩

57

帖子

15

主题

0

精华

熟手

F 币
242 元
贡献
166 点
沙发
 楼主| 发表于 2020-3-6 10:36:01 | 只看该作者
本帖最后由 kyra 于 2020-3-7 09:03 编辑

[Fortran] 纯文本查看 复制代码
subroutine turn(year,mon,day)
  Implicit none
  integer :: y , m , d , t
  open(55,file='ztzl-1.txt')
  Do
    do
    read( 55 , * , ioStat = t ) y , m , d
    if ( t/= 0 ) exit
  End Do
  Close(55)
 
contains
    
  Integer Function DaysInYear( year , mon , day )
    Integer :: year , mon , day
    Integer :: DaysInMonth(12) = [31,28,31,30,31,30,31,31,30,31,30,31]
    if ( ( (MOD(year,4)==0).and.(MOD(year,100)/=0) ) .or. (mod(year,400)==0) ) then
      DaysInMonth(2) = 29
    else
      DaysInMonth(2) = 28
    end if
    DaysInYear = sum( DaysInMonth(:mon-1) ) + day
  End Function DaysInYear
 
End sunroutine turn
如上即为整段函数,读取后还需使用y,m,d进行如下操作

835

帖子

2

主题

0

精华

大宗师

F 币
3926 元
贡献
2334 点
板凳
发表于 2020-3-6 12:21:02 | 只看该作者
[Fortran] 纯文本查看 复制代码
 open(55,file='ztzl-1.txt')
  Do i=1,4
    read(55,*)
  End Do
  do i=5,7
    read( 55 , * , ioStat = t ) y , m , d
    if ( t/= 0 ) exit
    !调用函数
  End Do
  Close(55)

57

帖子

15

主题

0

精华

熟手

F 币
242 元
贡献
166 点
地板
 楼主| 发表于 2020-3-6 12:59:04 | 只看该作者
li913 发表于 2020-3-6 12:21
[mw_shl_code=fortran,true] open(55,file='ztzl-1.txt')
  Do i=1,4
    read(55,*)

谢谢您了,我想了挺长时间也没想到这么处理,还是懂的太少了
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-12-27 15:46

Powered by Tencent X3.4

© 2013-2024 Tencent

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