免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3744 | 回复: 2
打印 上一主题 下一主题

关于文件输入输出的问题求助 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-09-12 12:16 |只看该作者 |倒序浏览
本帖最后由 zhlong8 于 2013-09-12 13:05 编辑

有三个文件file1, part1, part2.根据用户输入的信息要更新part1,part2然后将更新好的内容插入file1指定位置,产生file2. 用户会输入多行数据,所以会有多次插入。每一次插入要在前一次插入后的基础上改。因为file1要做为模板继续使用,所以要产生一个新文件。我现在的做法每插入一次就产生一个文件名后面加01的新文件,想求助各位有没有办法在第一次插入后产生新文件,之后的插入就在原文件改动呢?
sub CPInsert{
              my $file1 = shift;
         my $file2 = $file1 ."01";
         open(PART1,"<","$cwdpath\\part1_update.sql") or die "Cannot open $cwdpath\\part1_update.sql:$!\n";
         open(PART2,"<","$cwdpath\\part2_update.sql") or die "Cannot open $cwdpath\\part2_update.sql:$!\n";
         my @part1lines = <PART1>;
         my @part2lines = <PART2>;
         close(PART1);
         close(PART2);
         open(TMP,"<","$cwdpath\\$file1.sql") or die "Cannot open $cwdpath\$file1.sql:$!\n";
         open(RESULT,">","$cwdpath\\$file2.sql") or die "Cannot open $cwdpath\$file2.sql:$!\n";
         while(<TMP>){
                 if($_ =~ m/integration\('N'\)[\s\S]*/){
                 print RESULT @part1lines;
                 }
                 print RESULT $_;
         }
         print RESULT @part2lines;
         close(TMP);
         close(RESULT);
         
         return $file2;
}


主程序循环里用 $file = CPInsert("$file");

论坛徽章:
0
2 [报告]
发表于 2013-09-12 14:49 |只看该作者
没特别理解楼主的意思,file1即是模版文件,又作为更新后的文件。为什么不单独设置一个模版文件?

论坛徽章:
0
3 [报告]
发表于 2013-09-12 16:08 |只看该作者
回复 2# onepublic


    file1就是模板啊,更新后是file2. 我现在的做法就是每次都产生一个新文件,然后后面把除了最终的那个都删掉。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP