![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-14 00:07 |
共 47,812 主题排行 / 349,916 发帖 / 今日 0 篇 / 48,268 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 一个按顺序转换字符串的批处理[原创] |
| 可打印版本 3,561 / 9 |
| 第1楼 willsort | 发表于 2004-01-29 00:00 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
一个按顺序转换字符串的批处理[原创] To All:
|
|
| 第2楼 Kinglion | 发表于 2004-01-30 00:00 |
| 铂金会员 发帖 1,924 积分 5,798 来自 金獅電腦軟體工作室 | |
|
受益非浅,谢谢了。
|
|
| 第3楼 GOTOmsdos | 发表于 2004-02-03 00:00 |
| 铂金会员 发帖 1,827 积分 5,154 | |
|
有很多疑问,能不能每一句详细解释一下,让更多的人学会?
|
|
| 第4楼 xiaojun | 发表于 2004-02-03 00:00 |
| 银牌会员 发帖 499 积分 2,202 | |
|
有很多疑问,能不能每一句详细解释一下,让更多的人学会?
if == 与if "%1"==""是等同的吧? ; 这里的 if ==这个$代表什么呢?(票子? ![]() |
|
| 第5楼 willsort | 发表于 2004-02-03 00:00 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re xiaojun:
if == 与if "%1"==""是等同的吧? 是等同的,只是编程习惯不同而已。我想将变量值与常量串的表示分离,但是很多人认为无此必要,我也无法强求。 |
|
| 第6楼 willsort | 发表于 2004-02-03 00:00 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re xiaojun:
这里的 if ==这个$代表什么呢?(票子? $与票子没有关系,你到真有想象力。这只是表示当前的运行状态是在子程序中运行,$是SUBROUTINE的首字母缩写的变形,这同样是习惯问题。 |
|
| 第7楼 willsort | 发表于 2004-02-03 00:00 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re xiaojun:
真要句句详解,工作量太大了,本来我的时间便不充裕。 目前,此类程序仅供达者互相切磋,不宜普及。 |
|
| 第8楼 SagInvoker | 发表于 2004-05-24 00:00 |
| 初级用户 发帖 38 积分 257 | |
|
看了之后觉得思路不错,但是有个问题,你的#a2和#b2拿来干什么???
如果SHIFT用了8次都没找到变成了, 根本就没办法累加到 所以 set #a1= set #a2=%#a2%+ if == goto overflow 根本就没机会执行,除非你一开始就给#a1赋值,但是不太可能吧?? #b2也是如此 所以我实在想不通你设定#a2和#b2有什么目的 不知道你是不是还有什么没说完的话,说来听听~~~~~~ |
|
| 第9楼 chenall | 发表于 2004-05-26 00:00 |
| 银牌会员 发帖 469 积分 1,276 来自 福建泉州 | |
|
看不太懂
|
|
| 第10楼 willsort | 发表于 2004-06-02 00:00 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
关于按序列转换串的讨论-1 Re SagInvoker:
感谢SagInvoker兄对此问题的关注,并提出自己的宝贵意见。 首先需要声明,1楼提供的只是一个样例程序,而非一个通用程序,所以它无法缺省地处理用户的各种需求,而是需要用户根据自己的需求修改源代码。 程序中的主模块中已经注明转换序列可以重新设定和调整,言外之意是若将它应用在自己的项目中,需要根据自己的需求调整转换序列,大多数时候这项工作是必须的。我在文中使用的12345678和cdefghij只是一个带有很大局限性的示例而已。 但是,作为程序本身,应该要尽可能的考虑到各种经常会发生的情况,以增强它的适应性。比如实际情况中的转换序列很可能超过10个字符的长度(例如字母表向ASCII码表的转换)。而我在程序中使用到的环境变量#a2和#b2,正是为了解决长序列转换的问题。因为系统的环境空间是有限的,我们如果完全将转换序列计数为相应长度的环境变量,将造成环境空间的用度紧张,所以我将#a2和#b2设计为序列索引的十位数,而#a1和#b1则为个位数。那段你有疑问的代码,实现的是由#a1到#a2的进位运算,它在很多情形下都是需要的。 所以说,程序中的那段代码虽然在演示的过程中不会执行,但不代表他在所有的情况下都不会执行,即使这些另外的情况需要修改原来的代码。 当然,程序本身应该可以有进一步的改善,比如说他可以自我处理用户自定义的转换序列,而不需要用户去更改源代码。但是,作为一个带有示意性的项目来说,这些界面问题不属于我们关注的焦点,我们首先需要完成的是核心功能的实现,其次才能考虑界面和框架问题。 欢迎SagInvoker兄能对此程序进行完善,简化代码或者增加功能,都是可以的。 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |