Board logo

标题: [特效代码] [已解决]数字电子表的显示是什么原理? [打印本页]

作者: JooKin    时间: 2011-10-17 22:58     标题: [已解决]数字电子表的显示是什么原理?

最近在网上看到一个数字电子表的批处理,头看晕了,源代码如下:
  1. @echo off&SetLocal EnableDelayedExpansion&Mode Con Cols=54 Lines=6&Color 0a
  2. 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
  3. 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 (
  4.   set/a "cc=~cc"
  5.   for /l %%i in (1,1,%%a) do if "!cc!"=="0" (set "dgts=!dgts! ") else set "dgts=!dgts!■"
  6. )
  7. for /l %%z in () do (
  8. if "!time:~7,1!" neq "!sec!" (
  9. set "sec=!time:~7,1!"
  10. set "oc="
  11. for /l %%h in (0,1,4) do (
  12. for %%d in (0 sp 1 sp : sp 3 sp 4 sp : sp 6 sp 7) do (
  13. if "%%d"==":" (
  14. set/a tt=%%h*5
  15. if "!tt:~-1!"=="0" (set "oc=!oc! ") else set "oc=!oc!●"
  16. ) else (
  17. if "%%d"=="sp" (set "oc=!oc! ") else (
  18. set "timeP=!time: =0!"
  19. set/a s=!timeP:~%%d,1!*15+%%h*3
  20. for %%o in (!s!) do set "oc=!oc!!dgts:~%%o,3!"
  21. )
  22. )
  23. )
  24. )
  25. cls
  26. set/p=!oc!<nul
  27. )
  28. )
复制代码
显示这样的:
[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