标题: [特效代码] [已解决]数字电子表的显示是什么原理? [打印本页]
作者: JooKin 时间: 2011-10-17 22:58 标题: [已解决]数字电子表的显示是什么原理?
最近在网上看到一个数字电子表的批处理,头看晕了,源代码如下:- @echo off&SetLocal EnableDelayedExpansion&Mode Con Cols=54 Lines=6&Color 0a
- for %%a in (4 1 2 1 2 1 4 2 1 2 1 2 1 2 1 2 4 2 5 2 6 2 4 2 5 1 2
- 1 4 2 1 2 5 2 3 2 8 2 4 1 7 2 1 2 1 2 1 2 5 1 5 1 8 1 4 2 4) do (
- set/a "cc=~cc"
- for /l %%i in (1,1,%%a) do if "!cc!"=="0" (set "dgts=!dgts! ") else set "dgts=!dgts!■"
- )
- for /l %%z in () do (
- if "!time:~7,1!" neq "!sec!" (
- set "sec=!time:~7,1!"
- set "oc="
- for /l %%h in (0,1,4) do (
- for %%d in (0 sp 1 sp : sp 3 sp 4 sp : sp 6 sp 7) do (
- if "%%d"==":" (
- set/a tt=%%h*5
- if "!tt:~-1!"=="0" (set "oc=!oc! ") else set "oc=!oc!●"
- ) else (
- if "%%d"=="sp" (set "oc=!oc! ") else (
- set "timeP=!time: =0!"
- set/a s=!timeP:~%%d,1!*15+%%h*3
- for %%o in (!s!) do set "oc=!oc!!dgts:~%%o,3!"
- )
- )
- )
- )
- cls
- set/p=!oc!<nul
- )
- )
复制代码
显示这样的:
[attach]4564[/attach]
恳求大虾们解释下其中的原理,实现这样的效果关键在哪里?还有第一个for里面的那一串数字有什么用?
作者: FOR 时间: 2011-10-17 23:58
刚入门先不要急着看这么复杂的代码,等弄懂for if set 语句的用法及原理后,就看得懂了,现在没法给你解释,解释起来不是一般的麻烦,你也未必能懂。
作者: JooKin 时间: 2011-10-18 10:15
回复 2# FOR
基础的东西自我感觉还行,麻烦解释下算法吧,主要是重点在哪里我不知道
作者: JooKin 时间: 2011-10-18 15:16
咋就没人回答呢,是太简单了还是
作者: JooKin 时间: 2011-10-19 13:27
找到方向了,感谢Bather~~!
作者: Batcher 时间: 2011-10-19 14:00
回复 5# JooKin
等你理解顶楼代码之后,别忘了回来给其他不懂的人讲解一下啊
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |