2012-07-15 3 views
1

Ruby를 처음 사용하기 시작한 첫 번째 프로그램은 txt 파일을 읽고 각 행의 수정 된 버전을 다른 행으로 인쇄합니다. 이에Ruby를 사용하여 파일의 행을 읽고 수정하기

- Book Title *Book Author* 

: 아이디어는이를 얻는 것입니다

Book Title  Book Author 

내 코드는 다음과 같습니다

난 데 문제는 그것이 마지막 작동입니다
listold = File.open('listas.txt', 'r+') 
listnew = File.new('lista.txt', 'w+') 
listold.each_line {|line| 
    nome, autor = line.split(' *') 
    nome['- '] = ' ' 
    autor = autor.chomp('*') 
    listnew.puts nome << "\t" << autor 
} 

파일의 행. 다른 것들은 \t 간격이 매우 작고 마지막 *은 잘리지 않습니다. 아무도 나를 도울 수 있습니까?

답변

1

스플릿이 공백과 * 일치합니다.

'*'대신 '*'로 나눌 수 있습니다.

나는 당신의 코드를 시험해 보았다. 그것은 나의 테스트 파일의 모든 라인에서 작동한다.

+0

내가 제안한 것처럼 분할을 변경할 때만 작동합니다. 나는 이유를 알지 못한다. 감사! –

+0

이상한 ... 나는 charset 또는 이와 유사한 문제를 의심합니다. 개행 문자는 CR, CR/LF 또는 LF입니까? 나는 리눅스에있다. – Satya

+0

저는 Mac을 사용하기 때문에 LF라고 ​​생각합니다. –

관련 문제