Re: [問題] 讀檔案到陣列
※ 引述《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
推
07/04 16:53, , 1F
07/04 16:53, 1F
→
07/04 16:53, , 2F
07/04 16:53, 2F
討論串 (同標題文章)
Perl 近期熱門文章
PTT數位生活區 即時熱門文章