Fortran Coder

查看: 8401|回复: 2
打印 上一主题 下一主题

[文件读写] 删除文件出错,请指点。

[复制链接]

8

帖子

4

主题

0

精华

入门

F 币
59 元
贡献
33 点
跳转到指定楼层
楼主
发表于 2015-1-23 16:30:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
[Fortran] 纯文本查看 复制代码
program watersave
 implicit none
     character*5 filename
     integer :: i,k,flag
     integer :: a1, a2, a3 , a5, a6, a7, a8, a9, a10, a11, a12,a13 
     real*8 :: a4
     
     open(10, file = "D:\a\stations.txt")
     do i = 1 ,703
     read(10, *) filename
         open(11, file = "D:\a\"//filename//".txt")
         do k = 1,19358
             read(11, *)a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13
             if(a10 == 32766) then
                 flag=1
             endif
         end do
         if(flag == 1) then
            close(11, status = "delete")
         else
            close(11, status = "keep")
         endif
     end do
 end

我这是批量读取703个文件,19358行,我想把a10列等于32766的文件删掉,然后跟人请教一下这样写代码,但是这样的话就把所有的文件都删掉了。请指点一下怎么改正一下好呢?
分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

736

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
700 元
贡献
359 点

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

沙发
发表于 2015-1-23 18:51:03 | 只看该作者
记得每次循环把 flag 置为 0

[Fortran] 纯文本查看 复制代码
Program Watersave
  Implicit None
  Character *5 Filename
  Integer :: I, K, Flag
  Integer :: a(13)
  Real *8 :: a4

  Open (10, File='D:\a\stations.txt')
  Do I = 1, 703
    Read (10, *) Filename
    Flag = 0 !// 每次赋初值
    Open (11, File='D:\a\'//Filename//'.txt')
    Do K = 1, 19358
      Read (11, *) a(1:3) , a4 , a(5:13)
      If ( a(10) == 32766 ) then
        Flag = 1
        Exit
      End If
    End Do
    If (Flag==1) Then
      Close (11, Status='delete')
    Else
      Close (11, Status='keep')
    End If
  End Do
End Program Watersave

8

帖子

4

主题

0

精华

入门

F 币
59 元
贡献
33 点
板凳
 楼主| 发表于 2015-1-23 21:02:26 | 只看该作者
多谢了,群主指点
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-12-24 01:54

Powered by Tencent X3.4

© 2013-2024 Tencent

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