Se siete abituati ad usare notepad o un altro editor dalle ridotte capacita’ avrete notato che spesso alcuni file di testo non vengono visualizzati correttamente. Tipicamente questo e’ dovuto all’assenza di una convenzione su come i file di testo dovrebbero indicare il ritorno a capo. Su Unix, tradizionalmente, si termina una linea con ”\n”, su windows con ”\r\n” e su macintosh con ”\r”.
Ovviamente effettuare la conversione e’ banale:
Leggiamo il file una linea per volta, spezandolo al separatore richiesto:>> f=open('nix.txt').readlines("\n") >> f=open('mac.txt').readlines("\r") >> f=open('win.txt').readlines("\r\n")poi, effettuiamo una trasformazione su tutti gli elementi del’array, le linee: chiamiamo il metodo
chomp() che rimuove i caratteri ”\r” e “n”, poi concateniamo il terminatore di linea appropriato:
>>f.map! { |l| l.chomp+"\r\n" } # stampa come win >>f.map! { |l| l.chomp+"\n" } # stampa come nix >>f.map! { |l| l.chomp+"\r" } # stampa come mac
Per finire il lavoro basta scrivere il tutto in un file, ma attenzione: dovete usare print() e non puts(), perche’ quest’ultimo appenderebbe alla vostra linea ancora un altro terminatore.