免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123
最近访问板块 发新帖
楼主: yilong777jp
打印 上一主题 下一主题

请教 文本文件转换的问题 [复制链接]

论坛徽章:
0
21 [报告]
发表于 2005-01-07 16:43 |只看该作者

请教 文本文件转换的问题

你的程序到处是错误,而且你正则没学好啊

按照你的思路给你改了改,但这种思路我觉得太繁琐了,最好照我上个的那种算法


  1. use strict;

  2. my ($n);
  3. my $idx = 0;
  4. @ARGV = glob "cpuinfo" or die "no file found";
  5. while (<>;){
  6. if(/^([a-z])+: .*/)
  7. {
  8. if(/MDR_LOAD <- 1, MDR_INST <- 0/)
  9. {
  10. my @line = split(/:/, $_);
  11. chomp($line[1]);
  12. $n=ord($line[0]);
  13. print "$line[0]:$line[1]";
  14. $idx++;
  15. next;
  16. }
  17. my $need = $_;
  18. my @line2 = split(/:/,$need);
  19. if($idx >; 0 && ord($line2[0]) >; $n){     
  20. if(ord($line2[0]) == $n+1){
  21.   print ",$line2[1]";
  22.   next;
  23. }else{
  24. my $b = chr(ord($line2[0])-1);
  25. print "$b:$line2[1]";
  26. next;
  27. }
  28. }
  29. print;
  30. }
  31. #$idx++;
复制代码


  1. [root@mail workspace]# cat cpuinfo
  2. R2 <- R1 + (R4)
  3. opcode op_add_21_4
  4. comment proc_opcode := "01100110"; -- R2 <- R1+(R4)
  5. a: MDR <- mem[PC], PC <- PC + 1
  6. b: MAR_SRC <- R4, MAR_LOAD <- 1, ADDR_SEL <- 1, MDR_INST <- 0, PC_INC <- 0, R2_PENDING <- 1
  7. c: MDR_SRC <- MEM, MDR_LOAD <- 1, MDR_INST <- 0, PC_INC <- 0, R2_PENDING <- 1
  8. d: ALUs1_SRC <- R1, ALUs2_SRC <- MDR, ALU_FUNC <- alu_add, ALUOUT_DEST <- R2, ALUOUT_LOAD <- 1
  9. e: WB_DEST <- R2, REG_LOAD <- 1
  10. [root@mail workspace]# ./update_file2.pl
  11. a: MDR <- mem[PC], PC <- PC + 1
  12. b: MAR_SRC <- R4, MAR_LOAD <- 1, ADDR_SEL <- 1, MDR_INST <- 0, PC_INC <- 0, R2_PENDING <- 1
  13. c: MDR_SRC <- MEM, MDR_LOAD <- 1, MDR_INST <- 0, PC_INC <- 0, R2_PENDING <- 1, ALUs1_SRC <- R1, ALUs2_SRC <- MDR, ALU_FUNC <- alu_add, ALUOUT_DEST <- R2, ALUOUT_LOAD <- 1
  14. d: WB_DEST <- R2, REG_LOAD <- 1
复制代码

论坛徽章:
0
22 [报告]
发表于 2005-01-07 17:48 |只看该作者

请教 文本文件转换的问题

谢谢您,还是一头雾水,就是不明白为什么要设-3呢,看来我要从头学起了!!谢谢您的帮助~~
您有msn么,我的yilong0070701@msn.com.
希望能认识您这样的朋友~~

论坛徽章:
0
23 [报告]
发表于 2005-01-07 18:27 |只看该作者

请教 文本文件转换的问题

my msn is supermicro_cn@hotmail.com

论坛徽章:
0
24 [报告]
发表于 2005-01-08 20:34 |只看该作者

请教 文本文件转换的问题

您的程序最后少个},不知道您是怎么执行的,我执行了,还是和原来一样呀没有变化!!
而且#$idx++;没什么意义吧?

错在哪里呢??  
$need = $_;表示的还是原来的那一行,并不是新的一行呀,读取下一行怎么执行呢?

论坛徽章:
0
25 [报告]
发表于 2005-01-10 09:52 |只看该作者

请教 文本文件转换的问题

我的程序在拷贝的时候少了一个},你加上就可以

我第二个给你的程序是按照你的思路给你改的,程序无法更改原始文件的,而是直接将a-z行更新后输出到屏幕,你看我在程序后面运行时的例子就看得到

可以自己组合一下我的两个程序如果你一定要使用你自己的思路的话,或者最简单的是在第二个程序前面打开另外一个文件,然后将输出写到这个文件中,然后替换原始文件

论坛徽章:
0
26 [报告]
发表于 2005-01-10 12:28 |只看该作者

请教 文本文件转换的问题

第一个程序固然精妙。但是前3行的内容有时候是变化的,就是说a不一定是从第3行开始的,所以认为还是第2个的比较好!!
谢谢您 的指导~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP