2017-12-14 5 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メニュー項目を選択するだけです。

あなたが生成されたJavaコードを持っていたら、このようなローカルファイルから直接構造を解析することができます。

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

それとも、バイト配列(byte [])から構造を解析することができます。

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

KSの多くの解析機能はシークサポートに依存しているため、シーク不可能なストリーム(FileInputStream、BufferedInputStreamなど)からの解析はサポートされておらず、おそらくサポートされないことに注意してください。

generic documentationここでAPIの使用方法を読むことができます。Java-specific documentation hereがあります。

+0

コードスニペットのような例を教えてください。私はドキュメントを読んだが、それが何を言っているのかを正確に知ることはできなかった。小さなスニペットは私に多くを助けることができます、事前に感謝 – Srikar

+0

私はあなたが立ち往生したのか分からない。たとえば、返信した回答に投稿したコードスニペットを使用しようとしましたか?そして、あなたがどこにいらっしゃいましたか?エラーメッセージなどは何ですか? – koczkatamas

+0

ええ、働いてくれてありがとう、ちょっと混乱してしまったので、私が何をやっているのか理解できませんでした。しかし、いつかドキュメンテーションを読んだ後、私はそれのgitを得た。 – Srikar

関連する問題