elton123 0 #1 Posted January 12, 2015 (edited) bom eu fiço esse código que tiver com pressa pode ver resumindo resultados = { {1,2,3}, {7,8,1} } a = { {},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}, {},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},} conferir = { {1,2,3,7}, {8,9,20} } for i = 1,#resultados do for x = 1,#resultados[i] do for pp = 1, #conferir do for ww = 1,#conferir[pp] do if resultados[i][x] == conferir[pp][ww] then resultados[i][x] = conferir[pp][ww] end end end end end --print (#conferir[1]) eu quero que ele funcione assim que tabela de resultados verifique a tabela de conferir e esse numero for iguais jogue para tabela a mais problema ta que eu quero que quando digita print (#conferir[1]) me retornasse verificação de cada linha da tabela não todas junto resultados = {{1,2,3},{7,8,1}} conferir = {{1,2,3,7},{8,9,20}} tabela a tem que fica assim no 1 retorna 123 os 3 o 7 ta na linha de baixo do resultado print (#conferir[1]) aqui tem que retorna 3 print (#conferir[2]) aqui retorna 1 da linha de baixo resumindo quero que funcione assim for verifique resultados e conferir cada linha individualmente linha por linha não tudo junto eu acho que isso pode ajudar vocês entender melhor t1 = { linha 1 {1,2,3}, linha 2 {9,2,5} } t2 = { linha 1{0,2,3}, linha 2 {9,1,10} } t1 na linha 1 tem o 2 e 3 da linha 1 do t2 t1 na linha 2 tem o só 2 da linha 1 do t2 e assim adiante com linha 2 do t2 Edited January 12, 2015 by elton123 Share this post Link to post Share on other sites
Elwyn 106 #2 Posted January 12, 2015 Então seria assim: Resultados = { {1, 2, 3}, {4, 5, 6}} Conferir = {{1, 3, 20}, {5, 90, 10}} Depois de tudo, você teria uma tabela Conferidos = {{1, 3}, {5}} Seria isso? Ai Conferidos[1] seria {1, 3} e [2] seria {5}? Se for o que eu disse: local result = { {1, 2, 3}, {4, 5, 6} } local check = { {1, 3, 10}, {4, 5, 90} } local checked = {} local pos = 1 for _, linha_result in pairs(result) do local linha_check = check[pos] for _, v1 in pairs(linha_result) do for index = 1, #linha_check do if v1 == linha_check[index] then if not checked[pos] then checked[pos] = {} end table.insert(checked[pos], v1) end end end pos = pos + 1 end local output = nil for _, v in pairs(checked) do for _, vp in pairs(v) do output = output and output .. " " .. vp or vp end print(output) output = nil end Output: $ lua test.lua1 34 5 1 elton123 reacted to this Share this post Link to post Share on other sites
elton123 0 #3 Posted January 12, 2015 (edited) quase isso só se eu modificar tabela o numero 10 passa despercebido local result = { {1, 3, 25}, {4, 5, 10} } local check = { {1, 3, 10}, {4, 5, 25} } test.lua 1 3 4 5 só viu 1 e 3 de cima 4 e 5 queria ficasse assim test.lua 1 3 10 4 5 10 ficasse em baixo do 1 e 3 não juntos 1,3,10 ate pq 10 ta na linha 2 do result e na linha 1 do check não esta juntos mesma coisa acontece com 25 no final tinha que ficar assim 1 3 10 4 5 25 Edited January 12, 2015 by elton123 Share this post Link to post Share on other sites
Elwyn 106 #4 Posted January 12, 2015 Ele lê linha por linha. Por exemplo, ele compara a linha 1 dos resultados com a linha 1 dos que ele deve checar. Como o script deveria se comportar no caso que você descreveu? 1 elton123 reacted to this Share this post Link to post Share on other sites
elton123 0 #5 Posted January 12, 2015 bom linha 1 dos resultados com a linha 1 checar dps linha 1 dos resultados com linha 2 do checar dps linha 2 resultados com a linha 1 checar dps linha 2 resultados com a linha 2 checar assim por diante... Share this post Link to post Share on other sites
Elwyn 106 #6 Posted January 12, 2015 E a tabela dos checados, ela vai estar organizada baseado em que? Em que linha o valor estava na tabela resultado ou na tabela checar? Nesse outro script a tabela checked é organizada de acordo com a tabela result: local result = { {1, 2, 3}, {4, 5, 6} } local check = { {1, 5, 10}, {4, 3, 9} } local checked = {} local line = 1 for _, linha_result in pairs(result) do for _, linha_check in pairs(check) do for _, v_result in pairs(linha_result) do for _, v_check in pairs(linha_check) do if v_result == v_check then checked[line] = not checked[line] and {} or checked[line] table.insert(checked[line], v_result) end end end end line = line + 1 end local output = nil for _, v in pairs(checked) do for _, vp in pairs(v) do output = output and output .. " " .. vp or vp end print(output) output = nil end Share this post Link to post Share on other sites