기존 파일을 r + 모드로 열었습니다.파일의 특정 행에 행 삽입
open ("# {RAILS_ROOT} /locale/app.pot", 'r +') do | f |
끝에 내가 줄 번호 10. "안녕하세요"2 "세계"줄에 줄 번호에 "히"를 삽입하려는처럼 .. 어떤 특정 라인에서 을 다른 행을 삽입 할
숫자 20.
어떻게 루비에서 처리 할 수 있습니까 ??
기존 파일을 r + 모드로 열었습니다.파일의 특정 행에 행 삽입
open ("# {RAILS_ROOT} /locale/app.pot", 'r +') do | f |
끝에 내가 줄 번호 10. "안녕하세요"2 "세계"줄에 줄 번호에 "히"를 삽입하려는처럼 .. 어떤 특정 라인에서 을 다른 행을 삽입 할
숫자 20.
어떻게 루비에서 처리 할 수 있습니까 ??
:이 파일 조작 오프 한 내 패턴이
def write_at(fname, at_line, sdat)
open(fname, 'r+') do |f|
while (at_line-=1) > 0 # read up to the line you want to write after
f.readline
end
pos = f.pos # save your position in the file
rest = f.read # save the rest of the file
f.seek pos # go back to the old position
f.write sdat # write new data
f.write rest # write rest of file
end
end
이것은 Ruby에서 가장 좋은 방법은 아니지만 일반적으로 과거에이 작업을 수행해야 할 때 전역 적으로 고유 한 이름의 출력 파일을 열어 한 줄씩 읽거나 쓰고 다른, 길을 따라 선 수 유지. (그것을 유지하기 위해 세계에서 가장 큰 것은 아니지만, 구현하는 것은 매우 간단)
이 과거에 나를 위해 일했다입니다 I 수행해야합니다. 루비 (Luvy)를 사용하는 대신에 오랫동안 훌륭한 수식을 사용하는 루비 (Ruby)를 사용합니다. – holaSenor
나는 약간의 수정을해야했다 : f.write sdat 그리고 f.write rest. 또한 sdat에 새로운 행이 있는지 확인해야합니다 (원하는 경우). – nilanjan
예상대로 작동하도록 수정 된 코드. 그랬던 것처럼, 그것은 단지 ok라는 파일에 배열을 삽입했을뿐입니다 (''한 줄에 나머지 문서 '). 좋은 기여 @jdeseno! – JGutierrezC