看板 Perl 關於我們 聯絡資訊
各位板友大家好,小弟不才,有個問題想跟大家請教 原始資料如下 想將資料轉成 ABCDEFGHIJ V { All = 00009D0110; } @A1=010 V { All = 10009D0000; } @A2=002 V { All = 0209D00007; } @A3=000 . @A4=009 . @A5=99D . @A6=DD0 @A7=000 @A8=100 @A9=100 @A10=007 .... 這三筆資料的第一個資料0.1.0,是第一個代號A的; 同樣的第二個資料0.0.2則是代號B的資料。 而我想將各代號的資料都寫到各個陣列中,之後如果我取@A1[2]就是0;@A4[2]就是9 程式碼如下,先開檔讀檔 if ($_ =~ /V { All = (\w+); }/) { push (@all_pat, $1); } for ($i=0; $i<10;$i++) { for ($j=0; $j<3;$j++) { $all_patt2 = substr(@all_pat[$j],$i,1); print "$all_pat2 "; } print "\n"; } 單純在迴圈裡列印,然後在迴圈外面列印換行符號 是可以印出我想要的結果,如下 010 002 000 009 99D DD0 000 100 100 007 但是我要怎麼將目前每一橫行的結果都丟到每一個獨特的陣列裡面? 而原始資料有數萬行,代號也有近百個, 我要怎麼樣做才可以當代號有n個,就自動產生n個陣列來依序存值? 還望各位板友不吝解答,感謝~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.170.252.244