![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-12 07:18 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [求助]文本指定符号之间的字符替换 |
| 可打印版本 1,401 / 12 |
| 第1楼 cnxyc | 发表于 2010-12-04 14:13 |
| 新手上路 发帖 15 积分 15 | |
|
[求助]文本指定符号之间的字符替换 文本文件有上千行,每一行内容由英文的逗号分隔为5部分,例如:ab,f1,10000,10000,1000要求检测第二部分字符长度,大于4则提示出错并显示行号,判断第二部分的英文字母个数,如果有多个则只保留第一个,然后把此英文字母替换为数字,如果为a则换为101,为b则换为102,以此类推,如这里的f则换为106。补充,这里的英文不分大小写,可使用外部命令。
[ Last edited by cnxyc on 2010-12-4 at 14:27 ] |
|
| 第2楼 Hanyeguxing | 发表于 2010-12-04 14:55 |
| 银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂 | |
|
1,文本是否只包括数字,字母以及逗号?
2,提示错误需要输出到文本吗? 3,替换后将5部分数据写回到源文件? 4,z为126还是1026? 5,当字符大于4个时,是否也进行字符替换 6,第2部分的数据是否由“n个字码+n个数字”构成?还是字母和数字混在一起? [ Last edited by Hanyeguxing on 2010-12-4 at 15:07 ] |
|
| 第3楼 cnxyc | 发表于 2010-12-04 15:37 |
| 新手上路 发帖 15 积分 15 | |
|
谢谢hanyeguxing的热心提问! 谢谢hanyeguxing的热心提问!
1:文本只包括数字、字母以及逗号。 2:提示出错不需要输出到文件,只需要暂停等待用户响应然后终止程序。 3:替换后将5部分数据写到新文件,源文件保留。 4:这个问题是我疏忽了,对不起。这里如果为z则替换为126 5:当字符大于4时不进行替换,提示错误信息,显示行号,提示用户修改然后重新执行批处理。 6:第二部分数据有几种情况出现,1个字母,3个数字,1个字母加1个数字,4个数字。 |
|
| 第4楼 Hanyeguxing | 发表于 2010-12-04 17:14 |
| 银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂 | |
|
[ Last edited by Hanyeguxing on 2010-12-4 at 17:52 ] |
|
| 第5楼 cnxyc | 发表于 2010-12-04 18:35 |
| 新手上路 发帖 15 积分 15 | |
|
谢谢解答! 谢谢孤星的解答,如果我需要把英文字母转换为其他数字呢?就是转换过程不能用运算的方法,而是直接替换,比如现在想把
a转为107 b转为120 c转为166 因为下午在上班,没能及时回复,对不起啊。 |
|
| 第6楼 Hanyeguxing | 发表于 2010-12-04 18:47 |
| 银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂 | |
|
修改:部分,例如:
[ Last edited by Hanyeguxing on 2010-12-4 at 18:56 ] |
|
| 第7楼 cnxyc | 发表于 2010-12-04 19:19 |
| 新手上路 发帖 15 积分 15 | |
|
我是初学,没明白意思。 不好意思啊,初学。我把我现在要转换的贴出来,你帮忙改改代码。还有就是第一部分数据的长度不定,不过一般都在10位以下。以后要换其他转换数字我自己慢慢摸索吧。谢谢!
a转为166 b转为120 c转为654 d转为602 e转为922 f转为202 g转为904 h转为148 i转为610 j转为589 k转为921 l转为563 m转为248 n转为562 o转为357 p转为918 q转为750 r转为548 s转为181 t转为233 u转为919 v转为600 w转为677 x转为667 y转为220 z转为107 |
|
| 第8楼 cnxyc | 发表于 2010-12-04 19:40 |
| 新手上路 发帖 15 积分 15 | |
|
贴个示例 BG001,Z,100000.047,200000.581,1000.583
BG002,Z,104400.330,265000.458,1200.653 1000,B,107500.580,208500.068,1040.558 1001,B1,189500.588,255000.589,1100.583 1002,F,105840.584,268000.451,1060.483 1100,F1,102570.657,272000.471,1050.123 5,F2,108560.586,258980.571,1050.333 6,5482,100580.586,204570.541,1005.222 7,FF2021,55565.585,648555.444,1254.568 |
|
| 第9楼 Hanyeguxing | 发表于 2010-12-05 02:26 |
| 银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂 | |
|
到底要转换哪部分里的字母?
|
|
| 第10楼 cnxyc | 发表于 2010-12-05 12:10 |
| 新手上路 发帖 15 积分 15 | |
|
转第二部分的字母
|
|
| 第11楼 cnxyc | 发表于 2010-12-05 12:14 |
| 新手上路 发帖 15 积分 15 | |
|
示例中最后一行第二部分数据是故意那样输的 示例中最后一行第二部分数据是故意那样输的,目的是测试批处理排错功能。
|
|
| 第12楼 Hanyeguxing | 发表于 2010-12-05 12:25 |
| 银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂 | |
|
只对第二部分检查、替换:
|
|
| 第13楼 cnxyc | 发表于 2010-12-07 01:21 |
| 新手上路 发帖 15 积分 15 | |
|
大哥,谢谢啦! 帮我大忙了,虽然感谢的话在这里显得很苍白,但我还是谢谢孤星大哥的热心!
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |