Fortran Coder

查看: 13435|回复: 8
打印 上一主题 下一主题

[文件读写] 批处理筛选文件

[复制链接]

1963

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1357 元
贡献
574 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

楼主
发表于 2020-2-17 13:24:31 | 显示全部楼层
你这些 txt 文件是什么内容?格式如何?给一个范例。
if (2600<long .and. long<3947 .and. 7319<lat .and. lat<10447) then
这个判断,是只需要判断每个文件的第一行吗?还是每一行都需要判断?

1963

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1357 元
贡献
574 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

沙发
发表于 2020-2-17 21:47:34 | 显示全部楼层
这个判断,是只需要判断每个文件的第一行吗?还是每一行都需要判断?
如果一个文件里,第一行满足,但第二行不满足,第三行又满足,应该如何处理?

1963

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1357 元
贡献
574 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

板凳
发表于 2020-2-18 20:06:58 | 显示全部楼层
试试这样,如果还有问题,给一个实际的 txt 文件的真实范例。

[Fortran] 纯文本查看 复制代码
program test
  implicit none !//必须写
  integer i,long,lat
  real c(15)
  character(512)::filename
  call system('dir *.txt /b >1.dat')
  open(10,file='1.dat')
  open(3,file ='test.out') !根据数据中的某一个数据筛选文件
  do
    read(10,'(a512)',iostat=i) filename
    if(i/=0) exit
    open(2,file=filename)
    read(2,*) c
    close(2)
    long = c(3)
    lat =c(4)
    if (2600<long .and. long<3947 .and. 7319<lat .and. lat<10447) then
      write(3,*)filename !将符合条件的文件名称放入指定文件夹中
    end if
  end do
  close(3)
  close(10,status='delete')
  read(*,*)
end program test
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-5-5 09:45

Powered by Tencent X3.4

© 2013-2024 Tencent

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