| 
 
DOS2BAT 
新手上路
 
 
 
  
  
积分 11 
发帖 10 
注册 2010-7-9 
状态 离线
 | 
『楼 主』:
 [求助]批处理能做摩斯代码转换吗?
 
使用 LLM 解释/回答一下
  
批处理能做到摩斯代码转换吗?用户输入英语字母,并转换为摩斯电码,存到一个文本当中。我想到了用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 -…. 
 
    
 
  
 |   
 | 
  2010-8-22 21:27 | 
  
 | 
 | 
 
freeants001 
中级用户
 
   
 
  
 
积分 330 
发帖 244 
注册 2006-4-14 来自 湖北 
状态 离线
 | 
 | 
  2010-8-22 23:39 | 
  
 | 
 | 
 
freeants001 
中级用户
 
   
 
  
 
积分 330 
发帖 244 
注册 2006-4-14 来自 湖北 
状态 离线
 | 
『第 3 楼』:
 
 
使用 LLM 解释/回答一下
  
暈了,看出來了,原來是一一對應的關系。 
編碼:
  
@echo off&setlocal enabledelayedexpansion 
for /f "tokens=1,2" %%I in (code.ini) do set #%%I=%%J 
for /f "delims=" %%I in (TestFile.txt) do ( 
	set line=%%I&set newline= 
	for /l %%x in (0,1,1000) do if "!line:~%%x,1!" neq "" call:sub !line:~%%x,1! 
	echo !newline! 
) 
:sub 
	if "%1" equ "" (set "newline=%newline%  "&goto:eof) 
	set "newline=%newline%!#%1! " 
goto:eof 
 
 
fix: 每個間單詞編碼後用空格分開。
 
 Last edited by freeants001 on 2010-8-23 at 00:00 ]  
 
    
 
  
 |   
 | 
  2010-8-22 23:52 | 
  
 | 
 | 
 
DOS2BAT 
新手上路
 
 
 
  
  
积分 11 
发帖 10 
注册 2010-7-9 
状态 离线
 | 
『第 4 楼』:
 
 
使用 LLM 解释/回答一下
  
你这个不行哦……,我要的是用户输入后进行转换,而且你这个代码似乎有点问题,窗口一闪而过。没办法实现! 
 
    
 
  
 |   
 | 
  2010-8-23 12:26 | 
  
 | 
 | 
 
DOS2BAT 
新手上路
 
 
 
  
  
积分 11 
发帖 10 
注册 2010-7-9 
状态 离线
 | 
 | 
  2010-8-23 12:27 | 
  
 | 
 | 
 
freeants001 
中级用户
 
   
 
  
 
积分 330 
发帖 244 
注册 2006-4-14 来自 湖北 
状态 离线
 | 
『第 6 楼』:
 
 
使用 LLM 解释/回答一下
  
Originally posted by DOS2BAT at 2010-8-23 12:26: 
你这个不行哦……,我要的是用户输入后进行转换,而且你这个代码似乎有点问题,窗口一闪而过。没办法实现!  
3楼代码没有问题,用户输入后转换可以试试下面的:
  
@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 -….  
 
 
 Last edited by freeants001 on 2010-8-23 at 14:27 ]  
 
    
 
 
 
  
 |   
 | 
  2010-8-23 14:09 | 
  
 | 
 | 
 
DOS2BAT 
新手上路
 
 
 
  
  
积分 11 
发帖 10 
注册 2010-7-9 
状态 离线
 | 
 | 
  2010-8-23 20:31 | 
  
 | 
 | 
 
WANKOILZ 
初级用户
 
  
 
  
  
积分 198 
发帖 89 
注册 2007-9-6 来自 重庆 
状态 离线
 | 
 | 
  2010-8-23 20:46 | 
  
 | 
 | 
 
doshsyy 
新手上路
 
 
 
  
  
积分 19 
发帖 15 
注册 2010-8-20 
状态 离线
 | 
『第 9 楼』:
 
 
使用 LLM 解释/回答一下
  
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 -.... 
 
    
 
  
 |   
 | 
  2010-8-24 09:48 | 
  
 | 
 | 
 
DOS2BAT 
新手上路
 
 
 
  
  
积分 11 
发帖 10 
注册 2010-7-9 
状态 离线
 | 
『第 10 楼』:
 
 
使用 LLM 解释/回答一下
  
OK,谢谢各位,代码好复杂啊~看不懂,菜鸟一个,承蒙照顾! 
目前在研究怎么翻译密文,嘻嘻。这样不上网也可以进行转换了。 
 
    
 
  
 |   
 | 
  2010-8-27 21:35 | 
  
 |