ITPub博客

首页 > IT职业 > IT生活 > 今天上午写的perl---用于铃音文件名的转换

今天上午写的perl---用于铃音文件名的转换

原创 IT生活 作者:wangzh3 时间:2005-06-25 16:08:45 0 删除 编辑

我们公司做的彩铃网关,另外一个公司做的一个彩铃平台要割接到我们彩铃网关,涉及到彩铃平台的铃音文件要上来,网关的铃音文件要下发。

其中,彩铃平台的铃音文件名应该是“12位数字.wav”,但是他们是nnnnnnnnnnnn.wav来保存的。(每个n代表一个数字)。我们公司的是刚好12位的,对方不愿意直接提供“12位数字.wav”这样的文件,所有就有了现在的这两个perl。其中一个是用于把对方的nnnnnnnnnnnn.wav转换成nnnnnnnnnnnn.wav.另外一个是用于把我们的12位转成对应的nnnnnnnnnnnn.wav.

[@more@]

第一个,把nnnnnnnnnnnn.wav转换成12位的。

#name:tt.pl
#fucktion:将hw的abceftzx.wav类似的格式文件转换成abceftzx.wav,不限制子目录的层次
#use:将华为提供的文件放在某个目录下,假设是10,这个表示是铃音id是10开头的,把tt.pl放在和10同级的目录下。要求该目录下不再有其他的铃音文件。
#补充说明:进入命令行,执行即可。

use strict;
use warnings;
use File::Path;
use File::Basename;
use File::Spec::Win32;
use File::Find;
use File::Copy;
use Cwd;

my $target=getcwd;
sub wanted{
if (-f $File::Find::name){
if ($File::Find::name=~/wav/){
$_=$File::Find::dir;
$_=~s////g;
my $filename=basename($File::Find::name);
copy($File::Find::name,$target."/".$filename);
}
}
}

find(&wanted,$target);

第二个,把我们12位的转成分级目录的。

#name:fuckhw.pl
#fucktion:将12位铃音id文件转换成nnnnnnnnnnnn.wav(每个n为一位占位数字)
#use:将需要转换的12位铃音id放到一个目录(里面可以有子目录),将fuckhw.pl拷贝到该目录下,假设是在c:测试,则使用cmd在命令行下进入该目录, fuckhw.pl即可
#补充说明:nnnnnnnnnnnn.wav可以根据需要随意调整,只需要在下面对应的地方修改即可,以后也可以做成传入参数
use strict;
use warnings;
use File::Path;
use File::Basename;
use File::Spec::Win32;
use File::Find;
use File::Copy;
use Cwd;

my $target=getcwd;

sub wanted{
if (-f $File::Find::name){
if ($File::Find::name=~/wav/){
my $firstdir=$target."/".substr($_,0,3);
my $seconddir=$firstdir."/".substr($_,3,3);

if(! -e $firstdir){
mkdir $firstdir||die("error1");;
}

if (! -e $seconddir){
mkdir $seconddir||die("error2");;
}
my $filename=substr($_,6);

copy($File::Find::name,$seconddir."/".$filename);
}
}
}

find(&wanted,$target);

因为程序很短,如果所以就没有怎么写注释,如果各位看不明白的地方,可以留言,^_^。

也请大家多提建议。非常感谢!

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/47869/viewspace-801011/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    301
  • 访问量
    10828321