Convertire Fine Linea

Vedi tutte le pagine e le modifiche recenti o scarica i sorgenti nella pagina


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.

Updated on November 25, 2005 14:23 by il gruppo (127.0.0.1)