作者handsomegirl (薰)
看板perl
标题Re: [问题] 读档案到阵列
时间Tue Jul 3 13:56:10 2007
※ 引述《WalkingIce (会走路的冰块)》之铭言:
: ※ 引述《handsomegirl (薰)》之铭言:
: : 1.想请问一下,当我把档案都读到阵列里去後
: : 有什麽办法可以搜寻我指定的字串
: : 然後可以得到此字串在第几行,
: : 包括这行,开始往下print?
: 假设 sample 是这样
: 33996344 33996351 GB
: 33996352 50331647 XD
: 50331648 68257567 US
: 68257568 68257599 CA
: 全部读进阵列後,对每一行做比对
: 在比对成功之前的每一行都丢进另一个 array 里面
: #! /usr/bin/perl
: open FILE,"sample";
: @a1 = <FILE>;
: my @a2;
: # 以 US 来比对
: push (@a2,shift @a1) while (@a1[0] !~m{.+US} && @a1);
: print @a2;
: print "=====\n";
: print @a1;
: 结果如下
: 33996344 33996351 GB
: 33996352 50331647 XD
: =====
: 50331648 68257567 US
: 68257568 68257599 CA
: 或着你可以设定一个变数 $switch = 0; // 0=关闭 1=打开
: foreach(@array) {
: $switch = 1 if (比对成功);
: print $_ if $switch;
: }
这两段程式我都试过了,都成功,非常感谢,之前都没想到用switch的方式
不过後来想到,若是我搜寻us 我要印出US本身 跟下面的CA 前面的数字我不要
是要以二维阵列的方式来作吗?
有哪个关键字可以读那个字串的阵列值?
然後可以知道这个值从哪个档案来吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.65.55.161
※ 编辑: handsomegirl 来自: 61.65.55.161 (07/03 13:59)