Re: [問題] 兩個檔案比對問題

看板Perl作者 (把青春freeze)時間14年前 (2011/02/09 17:22), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《piglon (TEST123)》之銘言: : 想請教一個問題 : 我想比對兩個檔案的內容 : 利用兩個迴圈去讀兩個檔案 : 邊讀邊丟到串列 : 然後做比對 : 可是卻只做一次比對就結束了 : 這讓我困擾很久 : 感謝回答的先進謝謝 : 我的程式碼如下 我來幫你排吧 orz... : use strict; : open(FileHandle, "<1missdo.txt") or die "can't open 1missdo.txt\n"; : open(FileHandle1, "<9901.txt") or die "can't open 9901.txt\n"; : open(output_1, ">0127output".".txt") or die "can't open 0127output\n"; : while (my $line = <FileHandle>){ : my @items = split (/ /,$line); : while (my $line1 = <FileHandle1>){ : my @items1 = split (/ /,$line1); : if($items[2] =~ /$items1[3]/g){ : print output_1 "$items[0] $items[1] $items[2] $items[3]\n"; : print output_1 "$items1[7] $items1[22] $items1[3] $items1[17]\n"; : }#end of if($items[2] =~ /$items1[3]/g){ : }#end of while (my $line = <FileHandle>){ #問題就在這 因為你讀到檔尾了 所以while怎麼讀都是EOF #解決方案 第一個就是用seek函數 不然就是把檔關掉重新開一次 #效能有沒有差我就不知道了 應該會有吧 seek(FileHandle,0,0); # 加在這 : }#end of while (my $line1 = <FileHandle1>){ : close(FileHandle); : close(FileHandle1); : close(output_1); -- 如果青春注定要向前跑 他媽的...那我的出口在那? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.239.44

02/10 08:40, , 1F
太感謝了!!我終於知道癥結點了 感謝 等我寫好再上來回文
02/10 08:40, 1F
文章代碼(AID): #1DKbpMiI (Perl)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #1DKbpMiI (Perl)