亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 3754 | 回復: 3
打印 上一主題 下一主題

【求助】如何在正在讀寫的文件中判斷匹配,然后產生代碼 [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2013-12-18 16:11 |只看該作者 |倒序瀏覽
本帖最后由 freedos520 于 2013-12-23 19:44 編輯

我要自動產生一段的算法的C代碼,自我感覺實現(xiàn)起來比較復雜,請教論壇的高手!
perl腳本如下:
#!/usr/bin/perl

open my $inF, "+>", "wrd_wist.c";    #“+>” 為先寫,后讀

printf ( $inF "program main()\n");
printf ( $inF "\n");

printf ( $inF "input aor, \n");           #要匹配的語句,注意有逗號
printf ( $inF "input test bor, \n");      #要匹配的語句
printf ( $inF "input test cor, \n");      #要匹配的語句


if ($inF =~ /input\s+test\s+bor,/) {      #正在讀寫的文件句柄能否作為匹配變量?該怎么做?
printf ($inF "\n");
printf ($inF "output aor_t; \n");
printf ($inF "\n");
}
else
{
printf ($inF "\n");
printf ($inF "Fail found!\n");
printf ($inF "\n");
}


if ($inF =~ /input\s+test\s+bor,/) {      
printf ($inF "\n");
printf ($inF "AAA_level aaa_testnode_($uppercase)   ( mux_i( test_src ), mux_o( test_$lowercase ), div( $lowercase ) ) \n");
#這里的uppercase和lowercase均指的是input test bor這個匹配的變量的最后一個單詞bor,我不知道該怎么表達這個匹配上的字符串的最后一個變量。
printf ($inF "\n");
}
else
{
printf ($inF "\n");
printf ($inF "Fail found!\n");
printf ($inF "\n");
}

printf($inF "\n");
printf ($inF "endprogram\n");
close($inF)

#此perl可拷貝后,直接運行,產生wrd_wist.c文件。
#代碼中的注釋是我想做的事情。
#我想用if () {}語句來匹配前面三行printf在test.c中寫入的句子。
#請教各位,我應該怎么匹配前面的printf 輸入的那些語句?匹配上之后,則將產生一段代碼。

論壇徽章:
7
戌狗
日期:2013-12-15 20:43:38技術圖書徽章
日期:2014-03-05 01:33:12技術圖書徽章
日期:2014-03-15 20:31:17未羊
日期:2014-03-25 23:48:20丑牛
日期:2014-04-07 22:37:44巳蛇
日期:2014-04-11 21:58:0915-16賽季CBA聯(lián)賽之青島
日期:2016-03-17 20:36:13
2 [報告]
發(fā)表于 2013-12-19 01:54 |只看該作者
則:~
  1. my @inf = "program main()\n";
  2. push @inf, "\n";
  3. push @inf, "input aor, \n";
  4. push @inf, "input test bor, \n";
  5. push @inf, "input test cor, \n";

  6. my $inf = join '', @inf[ 2 .. 4 ];

  7. if ( $inf =~ /input\s+test\s+(bor),/ ) {
  8.     my ( $uppercase, $lowercase ) = ( uc $1, lc $1 );
  9.     push @inf, "\n";
  10.     push @inf, "output aor_t; \n";
  11.     push @inf, "\n";
  12.     push @inf, "\n";
  13.     push @inf,
  14.       "AAA_level aaa_testnode_($uppercase)   ( mux_i( test_src ),"
  15.       . " mux_o( test_$lowercase ), div( $lowercase ) ) \n";
  16.     push @inf, "\n";
  17. }
  18. else {
  19.     push @inf, "\n";
  20.     push @inf, "Fail found!\n";
  21.     push @inf, "\n";
  22. }

  23. push @inf, "\n";
  24. push @inf, "endprogram\n";

  25. open my $INF, ">", "wrd_wist.c";
  26. print $INF @inf;
復制代碼

論壇徽章:
0
3 [報告]
發(fā)表于 2013-12-19 11:31 |只看該作者
本帖最后由 freedos520 于 2013-12-19 14:11 編輯
rubyish 發(fā)表于 2013-12-19 01:54
則:~


萬分感激!

多謝大神!

請教下面這句怎么理解啊?


push @inf, "input aor, \n";
push @inf, "input test bor, \n";
push @inf, "input test cor, \n";

my $inf = join '', @inf[ 2 .. 4 ];

論壇徽章:
7
戌狗
日期:2013-12-15 20:43:38技術圖書徽章
日期:2014-03-05 01:33:12技術圖書徽章
日期:2014-03-15 20:31:17未羊
日期:2014-03-25 23:48:20丑牛
日期:2014-04-07 22:37:44巳蛇
日期:2014-04-11 21:58:0915-16賽季CBA聯(lián)賽之青島
日期:2016-03-17 20:36:13
4 [報告]
發(fā)表于 2013-12-23 01:17 |只看該作者
回復 3# freedos520
  1. my @inf = qw/1 2 3 4 5 6/;
  2. print join '-', @inf[2 .. 4];
  3. # 3-4-5     # index2 ~ index4
復制代碼
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP