中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [分享][原创]批处理写大字特效编辑器
作者:
标题: [分享][原创]批处理写大字特效编辑器 上一主题 | 下一主题
523066680
银牌会员

SuperCleaner


积分 2362
发帖 1133
注册 2008-2-2
状态 离线
『楼 主』:  [分享][原创]批处理写大字特效编辑器

首发于http://www.cn-dos.net/forum/viewthread.php?tid=45423&fpage=1
作者:523066680
blog:         http://hi.baidu.com/523066680

仅作为一次娱乐,突发奇想,若浪费大家时间,莫怪莫怪
特别遗憾的就是代码颇长。
@echo off&setLocal enabLedeLayedexpansion
::made by 523066680 2008-12-25
title made by 523066680@cn-dos.net
mode con coLs=45 Lines=22
  set num=0123456789abcdefghi
  set L0=0 1 2 3 4 5 6 7 8 9 a b c d e f g h
  for /l %%a in (1,1,18) do (set L=□!L!)
  for /l %%a in (1,1,18) do (set L%%a=%L%)
  for /l %%a in (0,1,18) do (set n!num:~%%a,1!=%%a)
for /l %%a in (0,1,18) do (echo,  !L%%a! !num:~%%a,1!)

:a
set /p n="(yx): "
if "%n%"=="quit" (exit)
if "%n%"=="exit" (echo,@set evern=%evern%>x.x &exit)
set evern=%evern% %n%
if "%n:~-1%"=="#" (set "str=□") else (set "str=■")
if "%n:~3%"=="" (set "do=::") else (set "do=")

  set /a ya=n%n:~0,1%,xa=n%n:~1,1%,xa2=xa+1
  %do% set /a yb=n%n:~2,1%,xb=n%n:~3,1%,xb2=xb+1
  %do% set "YorX=%n:~4,1%" &set "add=%n:~5,1%"

  :a-1
   set L%ya%=!L%ya%:~0,%xa%!%str%!L%ya%:~%xa2%!
   %do% set /a %YorX%a%add%=1,xa2=xa+1
   %do% if not !%YorX%a! equ !%YorX%b! (goto :a-1)
   %do% set L%ya%=!L%ya%:~0,%xa%!%str%!L%ya%:~%xa2%!

:echo
  ping -n 1 127.1>nul
  cLs
  for /l %%a in (0,1,18) do (echo,  !L%%a! !num:~%%a,1!)
goto :a
0 1 2 3 4 5 6 7 8 9 a b c d e f g h  0
□□□□□□□□□□□□□□□□□□ 1
□□□□□□□□□□□□□□□□□□ 2
□□□□□□□□□□□□□□□□□□ 3
□□□□□□□□□□□□□□□□□□ 4
□□□□□□□□□□□□□□□□□□ 5
□□□□□□□□□□□□□□□□□□ 6
□□□□□□□□□□□□□□□□□□ 7
□□□□□□□□□□□□□□□□□□ 8
□□□□□□□□□□□□□□□□□□ 9
□□□□□□□□□□□□□□□□□□ a
□□□□□□□□□□□□□□□□□□ b
□□□□□□□□□□□□□□□□□□ c
□□□□□□□□□□□□□□□□□□ d
□□□□□□□□□□□□□□□□□□ e
□□□□□□□□□□□□□□□□□□ f
□□□□□□□□□□□□□□□□□□ g
□□□□□□□□□□□□□□□□□□ h
□□□□□□□□□□□□□□□□□□ i

用法:
    直接输入坐标,如: 10 ,会在屏幕上描第一行第0编号的点,其实是第一行第一个点
假如后悔输入了这个点,再输入10#   就会把这个点去掉
    对于斜线曲线,只能一个个点描了。
    假如是一条竖线,或横线,可以输入两端点坐标 和"参数",
比如说,第一行第 1 到 f 的位置都要描点,从11到1f,就输入 111fx+
如果从1f到11,就输入1f11x- ;竖线,例如 10i0y+ 或i010y- 因为是直线,所以其中一个坐标是固定的
(都算是对使用者的要求吧...输入错误就会死循环的)
    仍然可以一整条的取消,例如:111fx+#
(后面带#的代表取消)

当一个字编辑好以后,
    输入exit结束  会把过程中输入的编码输出到 x.x 文件 编码记录着顺序,贴到已经编好的特效
脚本行首,就可了。其实 特效脚本 和 编辑器 的代码大部分一样,
编辑器只是为了方便看到结果并编辑,而特效脚本只是将作者原来输入的信息自动地"输入"一次罢了。
    输入quit结束 直接结束,不生成x.x文件

因为有用# 符号撤销描点的部分,所以特效一般会照搬过程,例如输入信息中有 111dx+ 111dx+#
找到这部分, 去掉 111dx+ 111dx+#,过程就会跳过这个。

以下是一个特效模板:

    第一行的编码是一个例子,出现了写错又擦掉的过程。可以试着去掉 1b1cx+ 1b1cx+# 再看一次。
    看自己的编辑的效果:把自己编辑获得的编码 整句 代替以下代码的第一行即可。
@set evern= 1151y+ 1316x+ 1636y+ 3633x- 3353y+ 5356x+ 181bx+ 1b1cx+ 1b1cx+# 1b 1b5by+ 383ax+ 585ax+
@echo off&setLocal enabLedeLayedexpansion
mode con coLs=40 Lines=22
color 40
  set "L0=" &set "num=0123456789abcdefghi"
  for /l %%a in (1,1,18) do (set L=□!L!)
  for /l %%a in (1,1,18) do (set L%%a=%L%)
  for /l %%a in (0,1,18) do (set n!num:~%%a,1!=%%a)
for %%a in (%evern%) do (call :a %%a)
pause
exit
:a
set n=%~1
if "%n:~-1%"=="#" (set "str=□") else (set "str=■")
if "%n:~3%"=="" (set "do=::") else (set "do=")
  set /a ya=n%n:~0,1%,xa=n%n:~1,1%,xa2=xa+1
  %do% set /a yb=n%n:~2,1%,xb=n%n:~3,1%,xb2=xb+1
  %do% set "YorX=%n:~4,1%" &set "add=%n:~5,1%"
  :a-1
  set L%ya%=!L%ya%:~0,%xa%!%str%!L%ya%:~%xa2%!
  call :echo
  %do% set /a %YorX%a%add%=1,xa2=xa+1
  %do% if not !%YorX%a! equ !%YorX%b! (goto :a-1)
  %do% set L%ya%=!L%ya%:~0,%xa%!%str%!L%ya%:~%xa2%!
  %do% for /l %%a in (1,1,3) do (ping -n 1 127.1>nul)
:echo
  for /l %%a in (1,1,3) do (ping -n 1 127.1>nul)
  cLs
  for /l %%a in (0,1,18) do (echo, !L%%a!)
  goto :eof
其实修改后也可以用来编辑和获得字符组成的图案,下面是自己编辑的字符进行组合(编的不太好唷...):
 
 ■
■■ ■
■■■■■■■■ ■■■■■■■■■
■■■■ ■■■
■■■ ■■■■■■■■
■■■■■■■■■■■■■■ ■■
■■■ ■■
■■■■■■■ ■■
■■■ ■■■■■■■■■■■
■■■■■ ■
■■■■■ ■
■■■ ■
■■■ ■
■■■■ ■

 
 
 
■■ ■
■■ ■
■■■■■■■■ ■■
■■■■ ■■■■
■■■■■ ■■
■■■■■ ■■
■■■■■■■■■■■ ■■
■■ ■■■■■■■■■■■■■
■■ ■
■■ ■
■■■ ■■■
■■■ ■■■
■■■ ■■■
■■■■ ■
■ ■
 ■■
 

[ Last edited by 523066680 on 2008-12-28 at 14:15 ]

   此帖被 +3 点积分    点击查看详情   
评分人:【 Helloworld 分数: +1  时间:2008-12-28 13:57
评分人:【 HAT 分数: +2  时间:2008-12-28 20:49




综合型编程论坛

我的作品索引
  
2008-12-28 13:53
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (523066680)  编辑帖子  回复  引用回复
BC
中级用户




积分 338
发帖 175
注册 2007-10-21
状态 离线
『第 2 楼』:  

很不错的说,要不搞个支持鼠标的?
http://www.bathome.cn/thread-2919-1-1.html



C:\
C:\Del BC
2008-12-28 13:56
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
holucan
初级用户





积分 26
发帖 25
注册 2008-11-7
状态 离线
『第 3 楼』:  

呵呵,很棒的批处理写大字特效编辑器。收下学习了。;)

2008-12-28 14:07
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
523066680
银牌会员

SuperCleaner


积分 2362
发帖 1133
注册 2008-2-2
状态 离线
『第 4 楼』:  

我读书去了,各位,批处理的世界我很喜欢,但是,环境迫使我离开这个世界。
(夸张了....)

所以基本上各位对代码的改进建议 我只看一下,大的改动,我没时间搞的。



综合型编程论坛

我的作品索引
  
2008-12-28 14:11
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (523066680)  编辑帖子  回复  引用回复
BC
中级用户




积分 338
发帖 175
注册 2007-10-21
状态 离线
『第 5 楼』:  

精神上支持你!



C:\
C:\Del BC
2008-12-28 14:15
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: