作者jjt (jet)
看板Perl
标题Re: [请益] print段落
时间Thu Dec 20 18:31:24 2007
※ 引述《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
1F:→ jjt:第二个if 改用elsif比较好 但是这样比较好看:P 12/20 18:33
2F:推 tear2001:谢啦~~已经能够成功prase档案罗 12/21 15:07