В приложение на Rails приемам и анализирам CSV файлове, които може да са форматирани с всеки от трите възможни знака за завършване на ред: \n
(LF
), \r\n
(CR+LF
) или \r
(CR
). Изглежда, че библиотеките File
и CSV
на Ruby се справят добре с първите два случая, но последният случай ("Mac classic" \r
окончания на редове) не се обработва като нов ред. Важно е да можете да приемете този формат, както и другите, тъй като изглежда, че Microsoft Excel за Mac (работещ на OS X) го използва, когато експортира към „Стойности, разделени със запетая“ (въпреки че експортирането към „Windows Comma Separated“ прави по-лесно -за обработка \r\n
).
Python има "универсална поддръжка за нов ред" и ще се справи с всеки от тези три формата без проблем. Има ли нещо подобно в Ruby, което ще приеме и трите, без да знае формата предварително?
\r
не се вижда в текущия изход, откакто Mac премина към Mac OS X, който използва *nix\n
. Покажете ни как отваряте вашите CSV файлове и вероятно ще можем да ви покажем някои трикове, за да се справите с всички споменати краища на редове с малка корекция. - person the Tin Man   schedule 24.09.2013\r
EOL, когато работите на Linux, който очаква\n
EOL. Така че файлът и операционната система няма непременно да се споразумеят за това какъв трябва да бъде разделителят на CSV записи. - person mu is too short   schedule 24.09.2013