📄 headgen.pl
字号:
#! d:\p\dev\perl\bin\perl -w
use strict;
use POSIX qw(strftime);
my $delfile = "del";
my $scriptName = "HeadGenerator";
# cmtb表示注释开始,cmte表示注释结束,cmtl将添加到每行行首
# 现在为C语言设置的,想要使之适用于其它语言,如vb,只需要修改这三项就可以了
# 数组pts是头部信息的种类,想要添加信息,如emal,直接在相应的行上创建这一项就行了
# 要处理的文件可以用headgen.pl filename来指写,也可以运行脚本后输入
my $cmtb = '/* ';
my $cmte = ' */';
my $cmtd = '------------------------------------------------------------------------';
my $cmtl = ' * ';
my $titl = ' ****ROBOCON 2009 | BUPT TEAM*******';
my @pts = (
'FileName : ',
'Version : ',
'Biref : ',
'Code by : ',
'Date : ',
'Note : ',
' ',
' '
);
my $fn;
my $tfn;
my $iscr = 0;
my $smod;
($fn, $smod) = @ARGV;
if(!defined($fn)){
$fn = <STDIN>;
chomp $fn;
}
print "$scriptName Openning...... $fn\n";
if(-e $fn){
print "File Exists\n";
$tfn = $fn.'.tmp';
$iscr = 1;
rename $fn, $tfn;
open FH, '>'.$fn || die "I can not open target file";
}
else{
$iscr = 0;
open FH, '>'.$fn || die "I can not open target file";
}
print "$scriptName Opened! $fn\n";
print FH $cmtb.$titl."\n";
print FH $cmtl.$cmtd."\n";
for my $pt(@pts){
my $input;
print $pt;
$input = <STDIN>;
chomp $input;
if($input =~ m/^\s*$/ ){
if($pt =~ m/FileName/){
$input = $fn;
$input =~ s(\\)(/)g;
$input =~ s(^.*/)()g;
}
elsif($pt =~ m/Date/){
$input = localtime;
}
elsif($pt =~ m/Ver/){
$input = "1.0";
}
elsif($pt =~ m/Code/){
$input = "Leaf";
}
else{
$input = " ";
}
print $pt.$input." (Default)\n";
print FH $cmtl.$pt.$input."\n";
}
else{
print FH $cmtl.$pt.$input."\n";
}
}
print FH $cmtl.$cmtd."\n";
print FH $cmte."\n";
if($iscr){
print FH "\n\n";
open FTH, $tfn || die "I cant open tmp file";
while(<FTH>){
print FH;
}
close FTH;
system($delfile, $tfn);
}
close FH;
print "$scriptName - $fn ...................OK!\n";
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -