看板 Perl 關於我們 聯絡資訊
※ 引述《tear2001 ( Play ball !!)》之銘言: : 這個好像前面有討論過 但是..... : 小弟不才....看到L大寫的 但就是看不懂orz : 我是想取出檔案中NSC下的number然後把Chemical Names斷落下的每一行接上 : 檔案如下: : FILE -----------------------------------> Result: : <NSC> NSC_533/Uramine T 80/Yuramin T 80 : 553 : . : . : . : . //就是想說能不能寫成"NSC/../../.." : <Chemical Names> 的格式...但一直無法成功 : Uramine T 80 : Yuramin T 80 : Methylolacrylamide : N-Methanolacrylamide : N-Methylolacrylamide : Monomethylolacrylamide : N-(Hydroxymethyl)acrylamide : 2-Propenamide, N- (hydroxymethyl)- : Acrylamide, N- (hydroxymethyl)- : $$$$ : <NSC> NSC_12/NFS/NFZ/NF-7.......... : 12 : . : . : . : <Chemical Names> : NFS : NFZ : NF-7 : Nefco : Amifur : Chixin : Mammex : U-6421 : Actin-N : Alfucin : $$$$ : 目前我已經寫到... : $File = $ARGV[0]; : open( FID, $File ); : use strict; : my $txtflag=0; : while (<FID>) { : $txtflag=1 if /^>\s\s\<NSC\>/i; : print "$_" if /^>\s\s\<NSC\>/i && $txtflag==1; : ............................................... : } : close FID; : 然後就死掉了 想請板上高手出手相救 : 無上感謝....... <(_ _)> $File = $ARGV[0]; open( FID, $File ); while(<FID>) { if(/^NSC (\d+)$/){ print "NSC_$1"; } if(/<Chemical Names>/) { while(chomp($_=<FID>)) { last if $_ eq ''; print "/$_"; } print "\n"; } } close FID; -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.121.197.133
jjt:第二個if 改用elsif比較好 但是這樣比較好看:P 12/20 18:33
tear2001:謝啦~~已經能夠成功prase檔案囉 12/21 15:07