![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-12 01:29 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [求助]批处理能做摩斯代码转换吗? |
| 可打印版本 1,306 / 9 |
| 第1楼 DOS2BAT | 发表于 2010-08-22 21:27 |
| 新手上路 发帖 10 积分 11 | |
|
[求助]批处理能做摩斯代码转换吗? 批处理能做到摩斯代码转换吗?用户输入英语字母,并转换为摩斯电码,存到一个文本当中。我想到了用set,也不知道行不,目前还是没点头绪,求助大家了!
转换格式: 例如:I LOVE YOU 转换为:.. .-.. --- ...- . -.-- --- ..- 另附上摩斯电码与英文的转换代码: A .- I .. Q --.- Y -.-- 7 --… B -… J .--- R .-. Z --.. 8 ---.. C -.-. K -.- S … 1 .---- 9 ----. D -.. L .-.. T - 2 ..--- 0 ----- E . M -- U ..- 3 …-- . .-.-.- F ..-. N -. V …- 4 ….- ? ..--.. G --. O --- W .-- 5 ….. , --..-- H …. P .--. X -..- 6 -…. |
|
| 第2楼 freeants001 | 发表于 2010-08-22 23:39 |
| 中级用户 发帖 244 积分 330 来自 湖北 | |
|
for+set很容易实现编码,就是不知怎么解码。没看出有什么规律
|
|
| 第3楼 freeants001 | 发表于 2010-08-22 23:52 |
| 中级用户 发帖 244 积分 330 来自 湖北 | |
|
暈了,看出來了,原來是一一對應的關系。
編碼: fix: 每個間單詞編碼後用空格分開。 [ Last edited by freeants001 on 2010-8-23 at 00:00 ] |
|
| 第4楼 DOS2BAT | 发表于 2010-08-23 12:26 |
| 新手上路 发帖 10 积分 11 | |
|
你这个不行哦……,我要的是用户输入后进行转换,而且你这个代码似乎有点问题,窗口一闪而过。没办法实现!
|
|
| 第5楼 DOS2BAT | 发表于 2010-08-23 12:27 |
| 新手上路 发帖 10 积分 11 | |
|
的确是对应关系,一个字母对应一个字符。
|
|
| 第6楼 freeants001 | 发表于 2010-08-23 14:09 |
| 中级用户 发帖 244 积分 330 来自 湖北 | |
Originally posted by DOS2BAT at 2010-8-23 12:26: 3楼代码没有问题,用户输入后转换可以试试下面的: [ Last edited by freeants001 on 2010-8-23 at 14:27 ] |
|
| 第7楼 DOS2BAT | 发表于 2010-08-23 20:31 |
| 新手上路 发帖 10 积分 11 | |
|
你的转换不规范噢~转换之后的密文没办法转成原文!可能是空格呀,那些不规范吧,希望可以解决。
这个是个在线转换的网址,若能利用其转换也可以,不过这下子就要人家能上网才可以用了。还是不想要。 http://blog.gxceo.com/gj/morse.html |
|
| 第8楼 WANKOILZ | 发表于 2010-08-23 20:46 |
| 初级用户 发帖 89 积分 198 来自 重庆 | |
| 第9楼 doshsyy | 发表于 2010-08-24 09:48 |
| 新手上路 发帖 15 积分 19 | |
|
6楼代码完全正确,是你给的替换表不对哦!你把"-"写成了"—","..."写成了"…",这是不一样的哦!所以我改了一下:
@echo off&setlocal enabledelayedexpansion for /f "tokens=1,2" %%I in ('more +12 "%~f0"') do set #%%I=%%J :begin set newline= set/p line=Please input a string: for /l %%x in (0,1,1000) do if "!line:~%%x,1!" neq "" call:sub !line:~%%x,1! echo.string: !line!&echo.enCode: !newline!&echo.!newline!>>encode$$$.txt goto:begin :sub if "%1" equ "" (set "newline=%newline% "&goto:eof) set "newline=%newline%!#%1! " goto:eof A .- I .. Q --.- Y -.-- 7 --... B -... J .--- R .-. Z --.. 8 ---.. C -.-. K -.- S ... 1 .---- 9 ----. D -.. L .-.. T - 2 ..--- 0 ---- E . M -- U ..- 3 ...-- . .-.-.- F ..-. N -. V ...- 4 ....- ? ..--.. G --. O --- W .-- 5 ..... , --..-- H .... P .--. X -..- 6 -.... |
|
| 第10楼 DOS2BAT | 发表于 2010-08-27 21:35 |
| 新手上路 发帖 10 积分 11 | |
|
OK,谢谢各位,代码好复杂啊~看不懂,菜鸟一个,承蒙照顾!
目前在研究怎么翻译密文,嘻嘻。这样不上网也可以进行转换了。 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |