今天终于把字串整理的程序完成了,明天开始清明节放假咯
2012-04-01 17:28
337 查看
将res文件夹下面的所有*.r文件的字串名与中文翻译提取出来,每个.r文件对应一张sheet,本文件中的翻译存放在本sheet中。代码很乱,但是很不想改了
经理总是叫我整理字符串,这么多的字串手动拷贝肯定是不行的,VBA也不熟,每次编程都要之前的模板拿来也折腾很久,C又写不出来,好像还是perl好用一点,我要多学点perl。
#!/usr/bin/perl
use Encode;
use Spreadsheet::WriteExcel;
$dir_name = "C:\\Perl\\res\\";
opendir(DIR,$dir_name) || die "Can 't open directory $dir_name ";
@dots = readdir(DIR);
print @dots;
$files = @dots;
# 创建一个新的EXCEL文件
my $workbook = Spreadsheet::WriteExcel->new('test.xls');
# 新建一个样式
$format = $workbook->add_format(); # Add a format
$format->set_bold();#设置字体为粗体
$format->set_color('red');#设置单元格前景色为红色
$format->set_align('center');#设置单元格居中
for($index=3;$index<=$files;$index++){
$filename = @dots[$index-1];
#print $filename;
#print "\n";
#print @dots;
# 添加一个工作表
$worksheet = $workbook->add_worksheet($filename);
$name = join "","C:\\Perl\\res\\",$filename;
open(ResFile,$name) or die"open F error:$!";
$row = 0;
while(defined($line=<ResFile>))
{
@filter = split /resourcedef /,$line;#找到resourcedef 字符串切割
if(@filter == 2)
{
#@filter = split /(\s*= StringT \()|(=StringT \()/,@filter[1];#filter包涵两个字符串,取第二个字串以 = StringT \(切割
@filter = split /(\s*=\s*StringT\s*\()/,@filter[1];#filter包涵两个字符串,取第二个字串以 = StringT \(切割
#print @filter;
chomp @filter;#去掉换行符号
$line=<ResFile>;
$line=<ResFile>;
$line=<ResFile>;
$line=<ResFile>;
$_ = $line;#读取到中文行
s/^\s+"//;#去除开头的空格和制表符以及第一个引号
s/"$//;#去掉末尾的引号
#$string = join "\t",@filter[0],encode("gbk",decode("utf8",$_));#IDS与中文符号以制表符相连,显示在同一行
#print $string;
$worksheet->write($row,0, @filter[0]);
$worksheet->write($row,1, decode('GB2312', encode("gbk",decode("utf8",$_))));#编码方式不对的时候,可能输出空//同下$worksheet->write($row,0,encode("gbk",'星星'));
#$worksheet->write($row,1, encode("gbk",decode("utf8",$_)));
#$ch = join " ","",encode("gbk",decode("utf8",$_));
#$worksheet->write($row,1,"123");
$row++;
}
}
}
exit;
经理总是叫我整理字符串,这么多的字串手动拷贝肯定是不行的,VBA也不熟,每次编程都要之前的模板拿来也折腾很久,C又写不出来,好像还是perl好用一点,我要多学点perl。
#!/usr/bin/perl
use Encode;
use Spreadsheet::WriteExcel;
$dir_name = "C:\\Perl\\res\\";
opendir(DIR,$dir_name) || die "Can 't open directory $dir_name ";
@dots = readdir(DIR);
print @dots;
$files = @dots;
# 创建一个新的EXCEL文件
my $workbook = Spreadsheet::WriteExcel->new('test.xls');
# 新建一个样式
$format = $workbook->add_format(); # Add a format
$format->set_bold();#设置字体为粗体
$format->set_color('red');#设置单元格前景色为红色
$format->set_align('center');#设置单元格居中
for($index=3;$index<=$files;$index++){
$filename = @dots[$index-1];
#print $filename;
#print "\n";
#print @dots;
# 添加一个工作表
$worksheet = $workbook->add_worksheet($filename);
$name = join "","C:\\Perl\\res\\",$filename;
open(ResFile,$name) or die"open F error:$!";
$row = 0;
while(defined($line=<ResFile>))
{
@filter = split /resourcedef /,$line;#找到resourcedef 字符串切割
if(@filter == 2)
{
#@filter = split /(\s*= StringT \()|(=StringT \()/,@filter[1];#filter包涵两个字符串,取第二个字串以 = StringT \(切割
@filter = split /(\s*=\s*StringT\s*\()/,@filter[1];#filter包涵两个字符串,取第二个字串以 = StringT \(切割
#print @filter;
chomp @filter;#去掉换行符号
$line=<ResFile>;
$line=<ResFile>;
$line=<ResFile>;
$line=<ResFile>;
$_ = $line;#读取到中文行
s/^\s+"//;#去除开头的空格和制表符以及第一个引号
s/"$//;#去掉末尾的引号
#$string = join "\t",@filter[0],encode("gbk",decode("utf8",$_));#IDS与中文符号以制表符相连,显示在同一行
#print $string;
$worksheet->write($row,0, @filter[0]);
$worksheet->write($row,1, decode('GB2312', encode("gbk",decode("utf8",$_))));#编码方式不对的时候,可能输出空//同下$worksheet->write($row,0,encode("gbk",'星星'));
#$worksheet->write($row,1, encode("gbk",decode("utf8",$_)));
#$ch = join " ","",encode("gbk",decode("utf8",$_));
#$worksheet->write($row,1,"123");
$row++;
}
}
}
exit;
相关文章推荐
- 今天在开始做一个信息采集程序,完成一部分了
- 今天终于完成了安装和调试工作。并且开始了转型。
- 今天终于把EXTMAIL+POSTFIX完成了
- 今天终于完成了美的网站的维护工作,工作中感觉又学到了点东西
- 从今天开始记录自己的程序点滴生活
- 独立完成的第一个c程序,虽然很简单,但是一个开始
- 今天终于又开始非一般的感觉了。
- SD外向交货 创建 拆批 发货过帐——今天完成的程序
- 今天开始 每个希望得偶解答问题的童鞋先完成任务,再提问
- 在完成了一段时间的整理后,我又要开始传日志了
- 今天开始整理博客
- 今天开始整理过去的知识
- 今天开始温习C++程序,写C++程序设计语言的读书笔记
- 今天我来整理下自己开发CM完成第一个项目HTC a5 的编译过程
- STEP2今天终于结项了,明天回家!
- Ring0下的病毒诊断程序终于完成了
- 小程序的今天就是微信指数的明天
- 明天回湖北!今天要开始收拾烂摊子了
- 今天开始写第一篇博客,将行业知识整理一遍
- 哈哈 明天放假 终于有点心情写文章了!这次说说 4寸 和3.5寸的适配