作者handsomegirl (薰)
看板perl
标题Re: [问题] 读档案到阵列
时间Tue Jul 3 14:53:53 2007
※ 引述《WalkingIce (会走路的冰块)》之铭言:
: ※ 引述《handsomegirl (薰)》之铭言:
: : 这两段程式我都试过了,都成功,非常感谢,之前都没想到用switch的方式
: : 不过後来想到,若是我搜寻us 我要印出US本身 跟下面的CA 前面的数字我不要
: : 是要以二维阵列的方式来作吗?
: : 有哪个关键字可以读那个字串的阵列值?
: : 然後可以知道这个值从哪个档案来吗?
: 啊,问题又看不太懂了 (我的中文真是没有我想像中好)
: 如果你只是要印出 US 那两个字,直接 print 不就行了吗? @.@
: print "US" if (比对成功);
: 我假设「要印出US本身 跟下面的CA 前面的数字我不要」的断句如下
: 「要印出US本身跟下面的CA,前面的数字我不要」
: 所以结果是要这样吧
: US
: CA
: 那先想想为什麽要弄个 switch?
: switch 打开代表接下来的东西才是我们真正关心的,所以可以这麽写
: foreach (@array) {
: $switch = 1 if (比对成功);
: if($switch) {
: 上上下下左右左右 AB ...;
: }
: }
: 只有 switch 打开後才会进到那一段 if 去,在此之前的我们都 don't care
: 於是问题就变成了「如何处理我们真正关心的内容」
: 以这个为例,那段任天堂经典秘技就可以写成
: print $1 if $_ =~ m{\d+\t\d+\t(.+)}; #数字<Tab>数字<Tab>文字
: 而你自己的 case 要怎麽去处理字串就自己去翻正规表示式罗
: 如果你真的很想知道,US 到底出现在哪几行里面
: 我不知道 foreach 有没有一个预设变数储存着 array index
: 但是我会用乡民土炮法去把它找出来
: my @index;
: my $count = 0;
: foreach (@array) {
: push (@index,$count) if (比对成功);
: $count ++;
: }
: 每跑一次 loop, $count 也会增加一次,刚好就是 array 的 index 值
: 接着把那几行全部放进 @index 里面。
: 值从哪个档案来?
: 这个我真的完全看不懂了.....[失意体前屈]
呵呵 不好意思 是我表达的不好啦
因为资料是读档得来了,所以希望也可以print出他来源的档案名字
大概是这样的意思
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.65.55.161
1F:推 WalkingIce:那可以继续用乡民土炮法 07/04 16:53
2F:→ WalkingIce:比对成功以後,就把当时的档名丢进 array 里面罗 07/04 16:53