- 帖子
- 180
- 积分
- 180
- 经验
- 180 点
- 威望
- 0 点
- 金钱
- 228 NG
- 魅力
- 820
- 性别
- 男
- 来自
- 山东
- 注册时间
- 2001-8-19
我们约会吧!
|
3#
发表于 2001-8-2 00:04
| 只看该作者
Re:计数器源代码
计数器?太......................................简单了
文本的::用法:<script src =.....
#!/usr/bin/perl
print "Content-type: text/html\n\n";
open (CNT,"count.dat"
$cont = <CNT>;
close (CNT);
$cont ++;
print "document.write(\'$cont\')\;";
open (CNT,">count.dat"
print CNT ($cont);
图形计数器的源代码:用法<IMG src= .....
#!/usr/bin/perl
# 设置数据文件名
$counter_file='count.dat';
if (-T $counter_file) {
open(FILE, $counter_file) || die $!;
$count = <FILE>;
close (FILE);
$count+=1;
} else {
$count=1;
}
open (FILE, ">$counter_file"
print FILE $count;
close (FILE);
&initialize;
&generateBitmap;
&writeBitmap;
exit;
sub initialize {
$minLen = 1; #最小长度
$isHigh = 0; #等于0时,数字10位高;等于1时,数字16位高,加了边界
$isInverse = 1; #0时白底黑字,1时黑底白字
@invdigits = ("c3 99 99 99 99 99 99 99 99 c3","cf c7 cf cf cf cf cf cf cf c7","c3 99 9f 9f cf e7 f3 f9 f9 81","c3 99 9f 9f c7 9f 9f 9f 99 c3","cf cf c7 c7 cb cb cd 81 cf 87", "81 f9 f9 f9 c1 9f 9f 9f 99 c3","c7 f3 f9 f9 c1 99 99 99 99 c3","81 99 9f 9f cf cf e7 e7 f3 f3","c3 99 99 99 c3 99 99 99 99 c3", "c3 99 99 99 99 83 9f 9f cf e3"
@digits = ("3c 66 66 66 66 66 66 66 66 3c", # 0
"30 38 30 30 30 30 30 30 30 30","3c 66 60 60 30 18 0c 06 06 7e","3c 66 60 60 38 60 60 60 66 3c", "30 30 38 38 34 34 32 7e 30 78", "7e 06 06 06 3e 60 60 60 66 3c","38 0c 06 06 3e 66 66 66 66 3c","7e 66 60 60 30 30 18 18 0c 0c","3c 66 66 66 3c 66 66 66 66 3c","3c 66 66 66 66 7c 60 60 30 1c"
}
sub generateBitmap {
@bytes = ();
$len = length($count) > $minLen ? length($count) : $minLen;
$formattedCount = sprintf("%0${len}d",$count);
if ($isHigh) {
for ($i = 0; $i < $len*4; $i++ ) {
if ($isInverse) {
push(@bytes,"ff"
}
else {
push(@bytes,"00"
}
}
}
for ($y=0; $y < 10; $y++) {
for ($x=0; $x < $len; $x++) {
$digit = substr($formattedCount,$x,1);
if ($isInverse) {
$byte = substr(@invdigits[$digit],$y*3,2);
}
else {
$byte = substr(@digits[$digit],$y*3,2);
}
push(@bytes,$byte);
}
}
if ($isHigh) {
for ($i = 0; $i < $len*4; $i++ ) {
if ($isInverse) {
push(@bytes,"ff"
}
else {
push(@bytes,"00"
}
}
}
}
sub writeBitmap {
print "Content-type: image/x-xbitmap\n\n";
if ($isHigh) {
printf ("#define count_width %d\n#define count_height 16\n",
$len*8);
}
else {
printf ("#define count_width %d\n#define count_height 10\n",
$len*8);
}
printf STDOUT "static char count_bits[] = {\n";
for($i = 0; $i < ($#bytes + 1); $i++) {
print("0x$bytes[$i]"
if ($i != $#bytes) {
print(",");
if (($i+1) % 7 == 0) {
print("\n");
}
}
}
print("};\n");
} |
|