[問題] 陣列的存取....

看板Perl作者 (Mm~~~)時間15年前 (2008/09/17 11:27), 編輯推噓3(304)
留言7則, 2人參與, 最新討論串1/1
ATOM 12 HG22 ILE P 1 -31.800 -23.286 29.283 1.00 1.32 PROP ATOM 12 HG23 ILE P 1 -30.945 -22.010 30.207 1.00 1.32 PROP ATOM 12 CG1 ILE P 1 -30.042 -23.666 32.316 1.00 2.17 PROP ATOM 18 HD2 ILE P 1 -29.604 -21.554 31.927 1.00 1.32 PROP ATOM 19 HD3 ILE P 1 -28.796 -22.224 33.384 1.00 1.32 PROP ATOM 20 C ILE P 1 -30.179 -26.609 30.868 1.00 2.00 PROP ATOM 20 O ILE P 1 -30.601 -27.764 30.830 1.00 1.70 PROP ATOM 20 N LEU P 2 -28.855 -26.379 30.992 1.00 1.85 PROP ATOM 20 HN LEU P 2 -28.496 -25.447 30.951 1.00 0.22 PROP 不好意思 ....想請問版友們 上面是目前處理的檔案....我把它存成陣列 再來利用 $a = substr $pdblist[$n],23,3; 的方式 把我想要的部份做處理 也就是 ILE P後面的"1"那column 做排序的處理 請問要怎麼把處理完的$a存回去原來的位子呢? 我試過 push 也行不通.... 以下是我想做的格式...謝謝大家 ATOM 12 HG22 ILE P 1 -31.800 -23.286 29.283 1.00 1.32 PROP ATOM 12 HG23 ILE P 2 -30.945 -22.010 30.207 1.00 1.32 PROP ATOM 12 CG1 ILE P 3 -30.042 -23.666 32.316 1.00 2.17 PROP ATOM 18 HD2 ILE P 4 -29.604 -21.554 31.927 1.00 1.32 PROP ATOM 19 HD3 ILE P 5 -28.796 -22.224 33.384 1.00 1.32 PROP ATOM 20 C ILE P 6 -30.179 -26.609 30.868 1.00 2.00 PROP ATOM 20 O ILE P 7 -30.601 -27.764 30.830 1.00 1.70 PROP ATOM 20 N LEU P 8 -28.855 -26.379 30.992 1.00 1.85 PROP ATOM 20 HN LEU P 9 -28.496 -25.447 30.951 1.00 0.22 PROP -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.43.101

09/17 12:41, , 1F
$pdblist[$n] = substr($pdblist[$n], 0, 23)
09/17 12:41, 1F

09/17 12:41, , 2F
. sprintf("%3d", $n) . substr($pdblist[$n], 26);
09/17 12:41, 2F

09/18 02:38, , 3F
substr($pdblist[$n],23,3) = $a;
09/18 02:38, 3F

09/18 02:49, , 4F
樓上方法更簡潔~ ^^ 感謝...
09/18 02:49, 4F

09/18 02:50, , 5F
substr($pdblist[$n], 23, 3) = sprintf("%3d", $n);
09/18 02:50, 5F

09/18 03:21, , 6F
substr 本身也有提供第4參數...
09/18 03:21, 6F

09/18 03:21, , 7F
substr($pdblist[$n], 23, 3, sprintf("%3d", $a));
09/18 03:21, 7F
文章代碼(AID): #18q7aLCn (Perl)