Re: [問題] 讀檔案到陣列

看板Perl作者 (薰)時間18年前 (2007/07/03 13:56), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/5 (看更多)
※ 引述《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)
文章代碼(AID): #16YUJxrk (Perl)
文章代碼(AID): #16YUJxrk (Perl)