中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [讨论]********findstr/a之用法质疑********
« [1] [2] »
作者:
标题: [讨论]********findstr/a之用法质疑******** 上一主题 | 下一主题
vkill
金牌会员





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『第 16 楼』:  

0401 的代码中精简的?

2007-11-27 21:05
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
s11ss
银牌会员





积分 2098
发帖 566
注册 2007-9-11
状态 离线
『第 17 楼』:  



  Quote:
Originally posted by everest79 at 2007-11-27 08:54 PM:
我也写过个
SETLOCAL ENABLEDELAYEDEXPANSION
IF %1 GTR 2099999999 (GOTO :EOF)
SET VAR=0123456789ABCDEF
FOR /L %%i IN (0,1,15) DO (
SET H%%i=!VAR:~%%i,1!)
SET HH=1&SET KK=0&SET TT=% ...

有限制啊,最多只能转换为10位16进制数(不算前两个0),但好像已经够用了。

2007-11-27 21:25
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 18 楼』:  



  Quote:
Originally posted by s11ss at 2007-11-27 20:51:
zh159兄,你的转换多位的代码与我的代码相比也不见得不啰嗦啊~~~~~~~~
不好意思,我收回这句话。
其实各有优缺点。
你的简单但降低了代码可读性而且加大了“程序处理量”(0-9都替换了),我的啰嗦但提高了代码可读性。

在“程序处理量”方面,你的处理量应该更大:

  Quote:
        call set r=%%r:10=A%%
        call set r=%%r:11=B%%
        call set r=%%r:12=C%%
        call set r=%%r:13=D%%
        call set r=%%r:14=E%%
        call set r=%%r:15=F%%
        call set r%1=%r%%%r%1%%

这部分也是一个替换过程,每次转换都要历经六次替换,0-9的数据也会一样处理,只不过0-9里面没有“10-15”数字,不会替换出A-F;
我那个简化的(原出处应该是不得不爱版主)虽然降低了代码可读性,但只要一次过替换(实际上是字符截取),效率高些

其实只要对比一下就可以发现相同的地方

  Quote:
:10to16
set/a q=%1
        :1c
        set/a r=%q%%%16
        set/a q=%q%/16
        call set r=%%r:10=A%%
        call set r=%%r:11=B%%
        call set r=%%r:12=C%%
        call set r=%%r:13=D%%
        call set r=%%r:14=E%%
        call set r=%%r:15=F%%

        call set r%1=%r%%%r%1%%
if not %q% equ 0 goto :1c
call set r=%%r%1%%



  Quote:
:10to16
set H=0123456789ABCDEF
set/a q=%1
        :1c
        set/a r=%q%%%16
        set/a q=%q%/16
        call set r=%%H:~%r%,1%%
        call set r%1=%r%%%r%1%%
if not %q% equ 0 goto :1c
call set r=%%r%1%%



   此帖被 +2 点积分      点击查看详情   
评分人:【 s11ss 分数: +2  时间:2007-11-28 13:04




2007-11-27 23:53
查看资料  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 19 楼』:  

iexplore about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>不能播放Midi可能缺少VB6控件吧
下载详细信息: Microsoft Visual Basic 6.0 公共控件
http://www.microsoft.com/downloa ... p;displaylang=zh-cn



第一高手    第二高手

2007-11-28 00:32
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
s11ss
银牌会员





积分 2098
发帖 566
注册 2007-9-11
状态 离线
『第 20 楼』:  

zh159兄言之有理,我又说错话了,确实我的代码要差些。改之!

2007-11-28 13:03
查看资料  发短消息 网志   编辑帖子  回复  引用回复
electronixtar
铂金会员





积分 7493
发帖 2672
注册 2005-9-2
状态 离线
『第 21 楼』:  



  Quote:
Originally posted by fastslz at 2007-11-28 00:32:
iexplore about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>不能播放Midi可能缺少VB6控件吧
下载详细信息: Microsoft Visual Bas ...

不是VB库

是Office自带的 VBA, Visual Basic for Applications

vbe6.dll 是VB编辑器的一个dll。

其实我签名里彩蛋在VB6也有,一样的。




C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
2007-12-2 17:31
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
knoppix7
银牌会员





积分 1287
发帖 634
注册 2007-5-2
来自 cmd.exe
状态 离线
『第 22 楼』:  

咳,是不是跑题了.

2007-12-2 17:57
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wjmm
初级用户





积分 48
发帖 19
注册 2008-4-16
状态 离线
『第 23 楼』:  

没看懂

2008-6-27 10:45
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: