2009-07-23 9 views
8

Ruby에서 이진 파일을 구문 분석 할 수 있어야합니다. 이 파일에는 각 청크의 파일 오프셋 및 길이가 포함 된 헤더를 통해 발견되는 데이터 청크가 들어 있습니다.Ruby에서 이진 파일 구문 분석

어떻게 데이터를 올바르게 가져 옵니까? 필자는 지금까지 문자열에서 나오기 때문에 읽은 오프셋을 기반으로 파일을 탐색 할 수 없었습니다. IO # seek seek 형식으로 변환하는 방법을 알지 못합니다.

어떤 도움이 필요합니까? 옵셋과 길이를 사용할 수있는 정수 (정수형 등)로 변환하는 일반적인 방법이 도움이 될 것입니다.

답변

6

당신은 String#unpack을 원합니다.

+0

을했다. unpack ('L *')은 내가 필요한 것입니다. –

+1

약간의 이식성을 유지하려면 native-endian 대신 little-endian 또는 big-endian unpack을 명시 적으로 사용해야합니다. – hhaamu

2

BitStruct에서 이진 데이터를 구문 분석하기위한 훌륭한 고급 인터페이스를 제공합니다.

+0

업데이트 된 링크 : https://github.com/vjoel/bit-struct – odigity