マイペースなプログラミング日記

DTMやプログラミングにお熱なd-kamiがマイペースに書くブログ

バイナリエディタ

String.format

ちょっと前までバイナリを16進数にするのにInteger.toHexStringを使っていた。そして、16進数で1桁の場合は0を先頭に付けるという作業をしていたが、現在はString.formatを使っている。桁数を指定したり、16進数を大文字に指定したり、桁数が足りない場合0で…

大きいファイル対策

大きいファイルでも開けるように、表示する領域にあるデータだけファイルから読み込む方式にしようかと思っている。ちょっと多めに読み込んでおくのも重要かもね。スクロールしたら別のスレッドで読み込むようにしよう。RandomAccessFileの使い方が重要にな…

バイナリエディタ開発復活

x86勉強会の会話がきっかけでバイナリエディタ開発を復活させることになった。最初から作り始めてるわけだけど、とりあえず表示させるとことまでいった

バイナリエディタを目指して その5

前回までは表示しかしてなかったので、今回は編集できるようにしてみた。そして、今までスクリーンショットを載せてなかったことに気づいたので、載せておくそれで編集機能を加えるにあたって修正したのはCaretクラスとHexEditorクラス。今の方法だと、キャ…

バイナリエディタを目指して その4

今回は前回のやつをちょっと整理する。キャレットのところを除けばほぼパッケージをわけたぐらい。それで、キャレットに関する変更を説明する。まず、描画専用のHighlighterというクラスを作った。実際、これはinterfaceで、これを実装したクラスが描画を行…

バイナリエディタを目指して その3

前回はとりあえず表示は行ったものの、キャレットの位置が変なところにいったり、スクロールバーがなかったりだったが今回追加した。キャレットの位置はキャレット用のクラスを作り、そこで制御している。そのため、1行に表示する文字数を指定する必要があ…

バイナリエディタを目指して その2

前回はデータを格納する部分だけを作ったので、今回は簡単に表示する部分を作成した。ファイルを適当に読み込んで表示している。そしてキーイベントでのカーソルの移動が手抜き。以下ソース。表示用コンポーネントのプログラムとそのテスト用のプログラムを…

バイナリエディタを目指して その1

なんとなくバイナリエディタを作ってみたくなったので、作成中。まずはデータを格納するクラスを作成。set(byte data, int index)でindex番目をdataに書き換えてget(int index)でindex番目を返すみたいなクラスを作った。データを格納する配列型のcontentsは…