本帖最后由 珊瑚虫 于 2014-2-21 21:45 编辑 在chuxf的基础上稍作修改,即可实现所有的opq全部修改为ooo :lol 在程序中加了"goto 10" [Fortran] 纯文本查看 复制代码 Program www_fcode_cn Implicit None Character( Len = 512 ) :: c integer :: i Open( 12 , File = "1.txt" ) Open( 13 , File = "2.txt" ) Do Read( 12 , '(a512)' , ioStat = i ) c if ( i /= 0 ) Exit 10 i = index( c , "opq" ) if ( i > 0 ) then c(i:i+len_trim("opq")-1) = "ooo" goto 10 end if Write( 13 , '(a)' ) Trim(c) End Do Close( 12 ) Close( 13 ) End Program www_fcode_cn |
本帖最后由 chuxf 于 2014-2-21 13:21 编辑 这个问题可以很复杂,也可以很简单。 主要受影响的因素是: 1.假如存在其他的 opq 是否需要替换?比如 abcopqdef 连在一起。 2.同一行内是否有可能存在多个 opq ?如果存在,是只替换第一个,还是全部替换? 3.opq 替换为 ooo,长度恰好一样,是否将来可能会替换成长度不一样的?比如 opq 替换为 fcode ? 以下代码按照最简单的书写。 我假定: 1.如存在其他 opq 与其他字符连在一起,也一样替换。 2.同一行只替换第一个 opq 3.opq 替换为 ooo 是长度相同的。 [Fortran] 纯文本查看 复制代码 Program www_fcode_cn Implicit None Character( Len = 512 ) :: c integer :: i Open( 12 , File = "1.txt" ) Open( 13 , File = "2.txt" ) Do Read( 12 , '(a512)' , ioStat = i ) c if ( i /= 0 ) Exit i = index( c , "opq" ) if ( i > 0 ) then c(i:i+len_trim("opq")-1) = "ooo" end if Write( 13 , '(a)' ) Trim(c) End Do Close( 12 ) Close( 13 ) End Program www_fcode_cn |
捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )
GMT+8, 2024-11-23 19:24