2017-12-14 18 views
-1

나는 최근에 임의의 이진 형식을 처리하기 위해 kaitai-struct을 시작했습니다. .ksy 파일을 내 데이터 용으로 작성하고 대상 언어로 구문 분석하여 java입니다. 이제는 데이터가있는 입력 파일을 전달하는 방법과 결과로 구문 분석되는 데이터를 가져와 요구 사항에 맞게 데이터를 조작 할 수있는 코드를 작성하는 방법을 알려줄 수 있습니까? 우리가 얻는 데이터에 따라 코드를 작성하는 방법에 대한 자습서가 있습니까?Kaitai code writing

미리 감사드립니다.

답변

2

먼저 Kaitai Struct Compiler 또는 WebIDE를 사용하여 .ksy 파일에서 Java 클래스를 생성해야합니다. the Kaitai user guide에서 컴파일러 사용 방법에 대한 자세한 정보를 찾을 수 있습니다.

WebIDE를 사용하는 경우 .ksy 파일을 마우스 오른쪽 버튼으로 클릭하고 Generate parser > Java 메뉴 항목을 선택하십시오. (바이트 [])

AnExampleClass output = AnExampleClass.fromFile("an_example.data"); 
// ... manipulate output ... 

아니면 바이트 배열 구조를 분석 할 수 : 사용자가 생성 된 자바 코드를 설정 한 후

,이 같은 로컬 파일로부터 직접 구조를 분석 할 수

AnExampleClass output = new AnExampleClass(new KaitaiStream(byteArray)); 
// ... manipulate output ... 

KS에서 많은 구문 분석 기능이 탐색 지원에 의존하기 때문에 검색 불가능한 스트림 (예 : FileInputStream, BufferedInputStream 등)에서 구문 분석이 지원되지 않으며 지원되지 않을 수도 있습니다.

여기서 generic documentation API 사용 방법을 읽고 Java-specific documentation here을 찾을 수 있습니다.

+0

코드 스 니펫과 같은 예를 들어 주시겠습니까? 설명서를 읽었지만 정확히 무슨 뜻인지 알 수는 없습니다. 작은 스 니펫은 제게 많은 도움을 줄 수 있습니다. 미리 감사드립니다. – Srikar

+0

어디서 붙어 있는지 이해할 수 없습니다. 예를 들어 내가 대답에 게시 한 코드 스 니펫을 사용하려 했습니까? 그리고 만약 당신이 어디에서 붙어있어? 오류 메시지 란 무엇입니까? – koczkatamas

+0

그래, 그 덕분에, 나는 어떤 점에서 혼란스러워서 내가하고있는 것을 이해할 수 없었다. 그러나 언젠가 설명서를 읽은 후에 나는 그것의 자식을 얻었다. – Srikar