dvbbs
收藏本页
联系我们
论坛帮助
dvbbs

>> Fortran语言使用经验交流
搜一搜相关精彩主题 
Fortran中文网Fortran中文网—Fortran语言经验交流Fortran语言使用经验交流 → [求助]如何使用fortran实现文件的复制,和删除?

您是本帖的第 7854 个阅读者
树形 打印
标题:
[求助]如何使用fortran实现文件的复制,和删除?
sailorxft
帅哥哟,离线,有人找我吗?
等级:论坛游民
文章:69
积分:837
门派:无门无派
注册:2007年4月17日
楼主
 用支付宝给sailorxft付款或购买其商品,支付宝交易免手续费、安全、快捷! 点击这里发送电子邮件给sailorxft

发贴心情
[求助]如何使用fortran实现文件的复制,和删除?
我是fortran的初级使用者,编程主要用于科学计算,不过最近需要通过程序自动复制、删除文件。查了用户手册,看不懂。网上搜了半天也找不到一点信息。请各位fortran高手帮帮忙,急!!!
ip地址已设置保密
2007/4/17 14:44:00
yuxin
帅哥哟,离线,有人找我吗?
等级:管理员
文章:120
积分:1313
门派:无门无派
注册:2006年10月26日
2
 用支付宝给yuxin付款或购买其商品,支付宝交易免手续费、安全、快捷! 点击这里发送电子邮件给yuxin

发贴心情

        system('del file2')

        system('copy file1 file2')

可以实现,

DEL也可以用

      open(7,file='file2')

      close(7,status='delete')

COPY也可以用:

* LINK S_FL.OBJ WHEN USING F50
* LINK S_F32.OBJ WHEN USING F32
* DIFFERENT FROM COPY.F: GETARG CHANGE TO GETARG

INTEGER PAUSE
character C*1,INPUT*30,OUTPUT*30,S*2
CHARACTER CHARINK*1

IOVERWRITE=0
IF(IARGC().NE.2) THEN
  IF(IARGC().EQ.3) THEN
   CALL GETARG(3,S)
   IF( (S(1:1).EQ.'/'.OR.S(1:1).EQ.'-')
     &      .AND.(S(2:2).EQ.'Y'.OR.S(2:2).EQ.'y')) THEN
    IOVERWRITE=1
    GOTO 5
   END IF
  END IF
  CALL GETARG(1,INPUT)
  CALL GETARG(2,OUTPUT)
  WRITE(*,*) 'PARAMETER NUMBER IS NOT 2, IT IS'
     &   ,IARGC(),INPUT,OUTPUT
  GOTO 100
C ELSE
C  CALL GETARG(2,S)
C  IF( (S(1:1).EQ.'/'.OR.S(1:1).EQ.'-')
C     &     .AND.(S(2:2).EQ.'Y'.OR.S(2:2).EQ.'y')) THEN
C   IOVERWRITE=1
C  
C   GOTO 5
C  END IF
END IF
5 CALL GETARG(1,INPUT)
CALL GETARG(2,OUTPUT)
open (1,file=INPUT,status='old',access='direct',recl=1,ERR=200)
IF(IOVERWRITE.EQ.0) THEN
  DO 15 I=30,1,-1
   IF(OUTPUT(I:I).NE.' ') GOTO 16
15  CONTINUE
16  CONTINUE
  OPEN(2,FILE=OUTPUT(1:I),STATUS='OLD',ERR=20)
  WRITE(*,*) 'FILE ',OUTPUT(1:I),' EXISTS, OVERWRITE? (Y/N)'
  READ(*,*) CHARINK
  INK=ICHAR(CHARINK)
  IF(CHAR(INK).EQ.'Y'.OR.CHAR(INK).EQ.'y') THEN
   CLOSE(2,STATUS='DELETE')
   GOTO 20
  END IF
  CLOSE(2)
  WRITE(*,*) 'NO FILE COPIED.'
  GOTO 100
END IF
20 open (2,file=OUTPUT,STATUS='OLD',ERR=30)
CLOSE(2,STATUS='DELETE')
30 open (2,file=OUTPUT,access='direct',recl=1)
I=1
10 Read (1, rec=I,ERR=100) C
WRITE(2,REC=I) C
I=I+1
GOTO 10
200 WRITE(*,*) 'INPUT FILE "',INPUT(1:LENGTH(INPUT)),'" NOT EXISTS'
100 End
C------------------------------------------------------------------------------
FUNCTION LENGTH(STR)
CHARACTER*(*) STR
DO 10 LENGTH=LEN(STR),1,-1
  IF(STR(LENGTH:LENGTH).NE.' ') GOTO 20
10 CONTINUE
20 CONTINUE
END

ip地址已设置保密
2007/4/17 14:48:36
sailorxft
帅哥哟,离线,有人找我吗?
等级:论坛游民
文章:69
积分:837
门派:无门无派
注册:2007年4月17日
3
 用支付宝给sailorxft付款或购买其商品,支付宝交易免手续费、安全、快捷! 点击这里发送电子邮件给sailorxft

发贴心情
非常感谢管理员的指导,我先试试!
ip地址已设置保密
2007/4/17 14:55:26
sailorxft
帅哥哟,离线,有人找我吗?
等级:论坛游民
文章:69
积分:837
门派:无门无派
注册:2007年4月17日
4
 用支付宝给sailorxft付款或购买其商品,支付宝交易免手续费、安全、快捷! 点击这里发送电子邮件给sailorxft

发贴心情

      SYSTEM('DEL F:\noise\TEST.DAT')


提示出错:

F:\noise\TRAN90.f(20) : Error: Syntax error, found END-OF-STATEMENT when expecting one of: ( % . = =>
      SYSTEM('DEL F:\noise\TEST.DAT')

ip地址已设置保密
2007/4/17 15:04:13
sailorxft
帅哥哟,离线,有人找我吗?
等级:论坛游民
文章:69
积分:837
门派:无门无派
注册:2007年4月17日
5
 用支付宝给sailorxft付款或购买其商品,支付宝交易免手续费、安全、快捷! 点击这里发送电子邮件给sailorxft

发贴心情

知道了,应该是:

      I=SYSTEM('DEL F:\noise\TRAN901.exe')


非常感谢!

ip地址已设置保密
2007/4/17 15:14:08
changjun
帅哥哟,离线,有人找我吗?
等级:新手上路
文章:6
积分:226
门派:无门无派
注册:2007年10月14日
6
 用支付宝给changjun付款或购买其商品,支付宝交易免手续费、安全、快捷! 点击这里发送电子邮件给changjun

发贴心情
如果用Visual Fortran着调用CopyFile函数最简单
ip地址已设置保密
2007/10/14 20:33:36
nihaosb
帅哥哟,离线,有人找我吗?
等级:新手上路
文章:7
积分:217
门派:无门无派
注册:2020年7月30日
7
 用支付宝给nihaosb付款或购买其商品,支付宝交易免手续费、安全、快捷! 点击这里发送电子邮件给nihaosb

发贴心情
北京私家侦探<br>上海搬家公司<br>网站制作
ip地址已设置保密
2020/7/30 18:12:27

 7   7   1/1页      1    
网上贸易 创造奇迹! 阿里巴巴 Alibaba
Powered By Dvbbs Version 7.1.0 Sp1
Copyright ©2005 - 2008 www.fortran.cn
页面执行时间 0.12012 秒, 5 次数据查询
京ICP备05056801号