Просто, чтобы все было ясно, это мой первый раз, когда я использовал сайт в качестве участника. Я пытаюсь сделать код в Lua, чтобы прочитать файл, содержащий диаграмму шифрования morse, прочитать файл, содержащий сообщение, а затем расшифровать его и распечатать в stdout. Я пробовал использовать вышеприведенный код и дебютировать, но пока не добился успеха. Первая функция работает правильно, однако цикл в двух следующих функциях, по-видимому, ничтожно. В качестве наблюдения: я уже сделал аналогичный код в C для назначения Data Structue.Функция не печатается в стандартном режиме
>
function lista()
local table = {}
io.input("morse.txt")
local lines ={}
for line in io.lines() do
lines[#lines+1] = line
end
io.input(stdin)
for i=1,#lines, 1 do
local x; local y; local s;
x, y = string.find(lines[i], " ")
s=string.sub(lines[i], y+1, -1)
local c=string.sub(lines[i], 1, 1)
table[s]=c
io.write(c, " ", s, "\n")
end
return table
end
function mensagem_cifrada()
print("Mensagem cifrada")
io.input("mensagem.txt")
local words= {}
local file = io.read("*all")
for w in string.gmatch(file, "%a+") do
print(#words)
words[#words+1] = w
end
io.input(stdin)
for i=1, (#words) do --Is not working
print(i)
io.write(i, words[i], " ")
end
io.write("\n")
return words
end
function conversao(mensagem, table)
print("Conversao")
msg = {}
for i=1, (#mensagem) do
print(i)
if mensagem[i] == "/" then
msg[i] = " "
else
local s = mensagem[i]
msg[i] = table[s]
end
end
for i=1, #msg do -- Is not working
print(i)
io.write(i, msg[i])
end
io.write("\n")
return msg
end
--Main Function
mensagem = {}
table = {}
table=lista()
mensagem=mensagem_cifrada()
conversao(mensagem, table)
--mensagem.txt
.--.. .-. .-.. .-. -.... .. -.. .... -.-.--./...-. ---. -.-.. .. ..../-.-.. ---. -.. .... .. --.. ..-. ... .-.. .-. --./-... .. -.-.. ---. -... ... ..-.. ... -.-.. .-. .-../-.-.. ---. .-.. .-.. .. -. .-. --. .. -.. -. ../.. .... -. .-./--. .. -.. .... .-. --.. .. --. -.-.--./.. -.. ...-. ... ../.-. --.. ---. .-.. .-./--. .. .... --. ---./..-. --./.. -....-. --. .-. ... .-.../.--.. .-. .-.. .-./.-. .-... -.-.. ..... ... .. .-.. ... .--.-.. -.-.. ... -.-.. .-.-.-. ..-. -.. -.... .-.-.-. -.... .-../../--. .-. .-.. --.-. ..-. ../.-./.-. .--.. .-.. .. .... .. -.. -. .-. -.-.. .-. ---./-... ---./-. .-.. .-. -.... .-. .-... ..... ---. -.-.--.
--morse.txt
A .-.
B -....
C -.-..
D -...
E ..
F ..-..
G --..
H .....
I ...
J .---.
K -.-.
L .-...
M --.
N -..
O ---.
P .--..
Q --.-.
R .-..
S ....
T -.
U ..-.
V ...-.
W .--.
X -..-.
Y -.--.
Z --...
1 .----.
2 ..---.
3 ...--.
4 ....-.
5 ......
6 -.....
7 --....
8 ---...
9 ----..
0 -----.
. .-.-.-.
, --..--.
? ..--...
' .----..
! -.-.--.
/-..-..
(-.--..
) -.--.-.
& .-....
: ----....
; -.-.-..
= -...-.
- -....-.
_ ..--.-.
" .-..-..
$ ...-..-.
@ .--.-..
Новый кусок кода
-
- Trabalho 2 de ED em Lua
function lista()
local table = {}
io.input("morse.txt")
local lines ={}
for line in io.lines() do
lines[#lines+1] = line
end
io.input(stdin)
for i=1,#lines, 1 do
local x; local y; local s;
x, y = string.find(lines[i], " ")
s=string.sub(lines[i], y+1, -1)
local c=string.sub(lines[i], 1, 1)
table[s]=c
io.write(c, " ", s, "\n")
end
return table
end
function mensagem_cifrada()
print("Mensagem cifrada")
io.input("mensagem.txt")
local words= {}
local file = io.read("*all")
for w in string.gmatch(file, "[^%s]+") do
words[#words+1] = w
end
io.input(stdin)
for i, v in ipairs(words) do
io.write(i, " ", v)
end
io.write("#words =", #words,"\n")
io.write("\n")
return words
end
function conversao(mensagem, tab)
print("Conversao")
msg = {}
for i=1, (#mensagem) do
if mensagem[i] == "/" then
msg[i] = " "
else
local s = mensagem[i]
msg[i] = tab[s]
end
end
for i, v in ipairs(msg) do
io.write(v)
end
io.write("\n")
return msg
end
--Função Main
mensagem = {}
tab = {}
tab=lista()
mensagem=mensagem_cifrada()
conversao(mensagem, tab)
Ожидаемый результат:
A .-.
B -....
C -.-..
D -...
E ..
F ..-..
G --..
H .....
I ...
J .---.
K -.-.
L .-...
M --.
N -..
O ---.
P .--..
Q --.-.
R .-..
S ....
T -.
U ..-.
V ...-.
W .--.
X -..-.
Y -.--.
Z --...
1 .----.
2 ..---.
3 ...--.
4 ....-.
5 ......
6 -.....
7 --....
8 ---...
9 ----..
0 -----.
. .-.-.-.
, --..--.
? ..--...
' .----..
! -.-.--.
/-..-..
(-.--..
) -.--.-.
& .-....
: ----....
; -.-.-..
= -...-.
- -....-.
_ ..--.-.
" .-..-..
$ ...-..-.
@ .--.-..
Mensagem cifrada
1 .--..2 .-.3 .-..4 .-.5 -....6 ..7 -..8 ....9 -.-.--.10 /11 ...-.12 ---.13 -.-..14 ..15 ....16 /17 -.-..18 ---.19 -..20 ....21 ..22 --..23 ..-.24 ...25 .-..26 .-.27 --.28 /29 -...30 ..31 -.-..32 ---.33 -...34 ...35 ..-..36 ...37 -.-..38 .-.39 .-..40 /41 -.-..42 ---.43 .-..44 .-..45 ..46 -.47 .-.48 --.49 ..50 -..51 -.52 ..53 /54 ..55 ....56 -.57 .-.58 /59 --.60 ..61 -..62 ....63 .-.64 --..65 ..66 --.67 -.-.--.68 /69 ..70 -..71 ...-.72 ...73 ..74 /75 .-.76 --..77 ---.78 .-..79 .-.80 /81 --.82 ..83 ....84 --.85 ---.86 /87 ..-.88 --.89 /90 ..91 -....-.92 --.93 .-.94 ...95 .-...96 /97 .--..98 .-.99 .-..100 .-.101 /102 .-.103 .-...104 -.-..105 .....106 ...107 ..108 .-..109 ...110 .--.-..111 -.-..112 ...113 -.-..114 .-.-.-.115 ..-.116 -..117 -....118 .-.-.-.119 -....120 .-..121 /122 ..123 /124 --.125 .-.126 .-..127 --.-.128 ..-.129 ..130 /131 .-.132 /133 .-.134 .--..135 .-..136 ..137 ....138 ..139 -..140 -.141 .-.142 -.-..143 .-.144 ---.145 /146 -...147 ---.148 /149 -.150 .-..151 .-.152 -....153 .-.154 .-...155 .....156 ---.157 -.-.--.#words =157
Conversao
PARABENS! VOCES CONSEGUIRAM DECODIFICAR CORRETAMENTE ESTA MENSAGEM! ENVIE AGORA MESMO UM E-MAIL PARA [email protected] E MARQUE A APRESENTACAO DO TRABALHO!
Вы предоставили нам стену без каких-либо намеков относительно того, где проблема. – warspyking
Какой цикл не работает? Работает ли это так, как вы планировали? Каково содержимое 'morse.txt'? Как насчет 'mensagem.txt'? –
@ EtanReisner. Следующие циклы не работают: ** для i = 1, (#words) do ** и ** для i = 1, #msg do **. Функция lista() работает так, как я предполагал. Файл morse.txt содержит в каждой строке (% c% s), где c - символ и s строка морзе, связанная с этим символом. Меньше.txt-файл содержит только последовательность строк алфавитно-морзе, разделенных пробелом. – lfmc