![]() |
share winlyrics to wmp SMI in perl
#!/usr/bin/perl
# # lrc2smi lyrics to plain text (wmp smi) v1.00 (perl) # # convert lyrics .lrc to WMP smi # # copyright 2004 Lechee.Lai lecheel at yahoo dot com # # global variable use File::Basename; my $tcount=0; my $tcontext; $argc=@ARGV &convertLRC(); exit 1; sub convertLRC { open(FILE, @ARGV[0]) or die "lrc2smi: you must have \"@ARGV[0]\" for convert :-)\n"; my $out=basename(@ARGV[0],""); if ($out=~/(.*)\..*/ and !$option{'withextension'}) {$out=~s/(.*)\..*/$1\.smi/;} else {$out.=".smi";} $pureLrc = ">$out"; @file = <FILE>; close (FILE); open (NEWFILE, $pureLrc) or die "$!"; &SMIbegin(); &SMItitle(); foreach $line (@file) { chomp ($line); $line1 = $line; # if ($line1 =~ /^\[(\d{2})\:(\d{2})\](.*)$/) { # check [nn:nn] if ($line1 =~ /^(.*)(:)(.*)(])/) { # check *:*] $line2 = $line1; if ($line2 =~ /\d(:)+\d+(])/) { # check nnn:nnn] # if (1) { $l1 = $line1; checkTimeStamp($line1); $noMore=0; while ($noMore==0) { if ($l1 =~ /^(.*)\d{2}(])/) { # have vaild timestamp $pos = index($l1, "]"); $timestamp = substr($l1, 0, $pos+1); if ($timestamp =~ /^\[(\d{2})\:(\d{2})\](.*)$/) { my ($m, $s) = ($1, $2); my $sec = $s+60*$m; while (exists $times{$sec}){ $sec += 0.01; } &SMItime($sec); } if ($tcount) { print NEWFILE "$tcontext"; } print NEWFILE "\n"; $l1 = substr($l1,$pos+1); } else { $noMore=1; } } } else { # print "###$line1\n"; } } else { # print "---$line\n"; } } &SMIend(); close(NEWFILE); } sub checkTimeStamp($) { my ($line) = @_; $tcount = 0; # initialize for TimeCount $pos = rindex($line,"]"); $tcontext = substr($line,$pos+1); if ($pos>5) { $tcount = 1; } # print "...$tcontext\n"; } sub SMIbegin { print NEWFILE "<SAMI>\n"; print NEWFILE "<HEAD>\n"; print NEWFIEL "<TITLE>Lechee Lyrics SMI</TITLE>\n"; } sub SMItitle { print NEWFILE "<STYLE TYPE=\"text/css\">\n<!--\nP {\n"; print NEWFILE "margin-left:8pt;\n"; print NEWFILE "margin-right:8pt;\n"; print NEWFILE "margin-bottom:24pt;\n"; print NEWFILE "Background-image : url();\n"; print NEWFILE "line-height:48pt;\n"; print NEWFILE "Background-color:#000000;\n"; print NEWFILE "text-align:center;\n"; print NEWFILE "font-size:16pt;\n"; print NEWFILE "font-family:,tahoma,arial,dotum,sans-serif;\n"; print NEWFILE "font-weight:bold;\n"; print NEWFILE "font-style:Normal;\n"; print NEWFILE "color:#ffff00;\n"; print NEWFILE "}\n"; print NEWFILE ".CCUS {Name:English; lang: en-US;\n}\n-->\n"; print NEWFILE "</STYLE>/n</HEAD>\n"; print NEWFILE "<BODY>\n"; } sub SMIend { print NEWFILE "</BODY>\n"; print NEWFILE "</SAMI>\n"; } sub SMItime($) { my ($tt) = @_; print NEWFILE "<SYNC Start="; print NEWFILE $tt; print NEWFILE "000><P Class=EGCC>"; } |
Re: share winlyrics to wmp SMI in perl
lechee <lecheel@yahoo.com> wrote in comp.lang.perl.misc:
> #!/usr/bin/perl [150 lines of undocumented code of dubious quality snipped] The place to share Perl code is the CPAN, not Usenet. Anno |
Re: share winlyrics to wmp SMI in perl
anno4000@lublin.zrz.tu-berlin.de (Anno Siegel) wrote in message news:<ch45dj$7dn$1@mamenchi.zrz.TU-Berlin.DE>...
> lechee <lecheel@yahoo.com> wrote in comp.lang.perl.misc: > > #!/usr/bin/perl > > [150 lines of undocumented code of dubious quality snipped] > > The place to share Perl code is the CPAN, not Usenet. > > Anno why I can not share the perl in usenet, google can search anything we want, I like google with usenet |
Re: share winlyrics to wmp SMI in perl
lechee <lecheel@yahoo.com> wrote in comp.lang.perl.misc:
> anno4000@lublin.zrz.tu-berlin.de (Anno Siegel) wrote in message > news:<ch45dj$7dn$1@mamenchi.zrz.TU-Berlin.DE>... > > lechee <lecheel@yahoo.com> wrote in comp.lang.perl.misc: > > > #!/usr/bin/perl > > > > [150 lines of undocumented code of dubious quality snipped] > > > > The place to share Perl code is the CPAN, not Usenet. > > > > Anno > > why I can not share the perl in usenet, google can search anything we > want, I like google with usenet Usenet is a discussion forum. The fact that google has chosen to archive it doesn't make it an archive itself. Anno |
| All times are GMT. The time now is 06:40 AM. |
Powered by vBulletin®. Copyright ©2000 - 2013, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.