2012-10-10 14 views
15

Potrzebuję sformatować ciąg, który kończy się znakiem nowej linii. Dodałem tylko "\ n", ale chcę, żeby działało również w systemie Windows. Wiele języków ma stałą, która zapewnia odpowiednią sekwencję CR/LF/CRLF zgodnie z platformą, ale nie mogę znaleźć niczego w Ruby. Czy to istnieje?Czy Ruby ma stałą wartość dla wieloplatformowego EOL?

+0

Możesz dodać "\ r \ n", który zawsze działa, AFAIK. Można również określić separator rekordów dla wywołań do drukowania i zapisu przez zmienną $ \ –

+0

Czy po prostu wyprowadzasz łańcuch przez coś takiego jak puts? Ponieważ puts użyje poprawnego EOLa dla $ PLATFORM, czy też potrzebujesz przerwy w linii wewnętrznej? – Doon

+1

Zapisywanie \ r \ n do plików w systemach UNIX powoduje okropny bałagan. – d11wtq

Odpowiedz

24

Ruby dostał cztery (!)

p $/ 
p $-0 
require 'English' 
p $RS 
p $INPUT_RECORD_SEPARATOR 

Korzystanie IO # kładzie (= Plik nr puts) zadba o prawidłowe EOL, nie ma potrzeby, aby ustawić go ręcznie.

+0

Świetna odpowiedź, dzięki! – d11wtq

+1

Są to wszystkie * separatory rekordów * wejściowych *, a nie wieloplatformowe znaki EOL. W systemie Windows są ustawione na '" \ n "'. – sshaw

Powiązane problemy