1,2,3
4,5,6
7,8,9
e vorreste scambiare le righe con le colonne per ottenere questo:
1,4,7
2,5,8
3,6,9
Esistono vari modi per farlo in livecode, ecco il mio codice:
function trasponi lista
set columndel to comma
split lista by column
repeat for each element tElem in lista
repeat for each line tLine in tElem
put tLine & comma after lista2
end repeat
delete last char of lista2
put return after lista2
end repeat
return lista2
end trasponi
E voi riuscite a trovare un codice ancora più veloce?
Ciao,
RispondiEliminaho notato che se al posto di 3X3 crei una tabella 12X12 l'ordine dei numeri è errato.
Partendo da questa tabella:
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
La tua funziona la converte così:
1,13,25,37,49,61,73,85,97,109,121,133,
10,22,34,46,58,70,82,94,106,118,130,142,
11,23,35,47,59,71,83,95,107,119,131,143,
12,24,36,48,60,72,84,96,108,120,132,144,
2,14,26,38,50,62,74,86,98,110,122,134,
3,15,27,39,51,63,75,87,99,111,123,135,
4,16,28,40,52,64,76,88,100,112,124,136,
5,17,29,41,53,65,77,89,101,113,125,137,
6,18,30,42,54,66,78,90,102,114,126,138,
7,19,31,43,55,67,79,91,103,115,127,139,
8,20,32,44,56,68,80,92,104,116,128,140,
9,21,33,45,57,69,81,93,105,117,129,141,
Saluti,
Paolo
Hai ragione, io di solito usavo dei cicli, ma su un forum ho trovato un codice più veloce, ma sbagliato... L'errore è che ordina le righe prima di riscriverle, quindi si perde l'ordine corretto delle righe.
RispondiEliminaOra ho messo un mio vecchio codice corretto. Grazie!
Se hai un codice migliore, pubblicalo pure