2014-02-05 2 views
1

Windows 컴퓨터에서 Ruby 1.9.3을 사용하고 있습니다.루비 IO.readlines 파일의 마지막 줄 앞에 중지

파일에 IO.readlines을 실행하면 이상하고 예상치 못한 결과가 발생합니다. 파일에 IO.readlines을 실행 한 결과는 파일의 마지막 행이 아닌 행에서 끝나는 배열입니다. 예를 들어, 배열의 마지막 요소는 다음과 같습니다.

MLOGIC(RESPONSE_FREQUENCY): Parameter NUMERATOR_SUBSET has value \x01where 

파일의 실제로 많은 줄이 있어도 배열의 마지막 요소입니다.

Ruby 2.0.0을 사용하여 OS X에서 동일한 파일에 IO.readlines을 실행하면 문제가 없습니다. 예상대로 전체 파일을 배열로 읽습니다.

위의 사항에 대한 도움을 주시면 감사하겠습니다.

답변

0

OSX 대 Windows에서 IO.readlines (문서 1.9.32.0.0)의 주요 차이점은 "\n"가 될 것을 찾을 수 있습니다 unixoid 시스템 -on 기본 라인 구분자 $/ 및 Windows에이 "\r\n"입니다.

arr = IO.readlines('./testfile', "\n") 
+0

안녕하세요, 당신의 대답을 주셔서 감사 것을 시도하지만 결과를 변경하지 않은 :

당신과 같이 IO.readlines를 호출 할 수 있습니다, 같은 동작을 얻으려면. IO.readlines의 결과는 그래야하는 것보다 작습니다. 파일에 16 진수 문자가 있다고 생각합니다. 나는 IO.readlines가 그 캐릭터에 도착했을 때 멈춘다 고 생각한다. – Glenn

+0

글쎄, 그건 안된다. 'File.read ('./ testfile'). split ("\ n")'시도 했습니까? – DMKE

+0

난 그냥 분할 코드를 시도했다. 같은 결과. 나에게 16 진수 문자처럼 보이는 문자를 치면 멈 춥니 다. – Glenn

관련 문제