MediBang Paint Proでmdp拡張子で保存するときの、xmlのフォーマットを自力で解析する続きです。
「MediBangファイルフォーマットの解析(stringsコマンドを使う)」で使ったファイル中のタイムスタンプを書き換えたファイルを作成してみます。
新しく作るMediBangのファイルはnew.mdbとしました。
takk@deb8:~/Desktop$ cp file1.mdp new.mdp takk@deb8:~/Desktop$ vi new.mdp
4行目のタイムスタンプを更新しました。
vimでZZで保存したら、このファイルをWindows上で動いているMediBangに読み込みます。
おかしいです。認識しません。このようなメッセージが表示されます。
ファイルサイズとかが変わっているのでしょうか?
takk@deb8:~/Desktop$ wc -c file1.mdp new.mdp 1195 file1.mdp 1196 new.mdp 2391 合計 takk@deb8:~/Desktop$
file1.mdpでは1195バイトだったのに、いつの間にやら1バイト増えています。
どこが増えたのでしょう。cmpで調べます。
takk@deb8:~/Desktop$ cmp -l !!:2 !!:3 cmp -l file1.mdp new.mdp 303 70 71 cmp: file1.mdp でファイル終端 (EOF) に達しました takk@deb8:~/Desktop$
new.mdpの一番最後に1バイト増えていることがわかりました。
一番最後の1バイトは何でしょうか。ダンプして確認します。
takk@deb8:~/Desktop$ od -tx1 -w1 -Ax -v new.mdp | tail 0004a3 00 0004a4 00 0004a5 00 0004a6 00 0004a7 00 0004a8 00 0004a9 00 0004aa 00 0004ab 0a 0004ac takk@deb8:~/Desktop$
改行(0x0A)のようです。
Vimが保存する時に、改行を入れているようです。
勝手に改行を入れないように、バイナリ指定しましょう。
Vimで、:set binを実行した後、ZZで保存します。
では保存したファイルを確認してみます。
takk@deb8:~/Desktop$ wc -c file1.mdp new.mdp 1195 file1.mdp 1195 new.mdp 2390 合計 takk@deb8:~/Desktop$ cmp file1.mdp new.mdp file1.mdp new.mdp 異なります: バイト 303、行 4 takk@deb8:~/Desktop$
できたnew.mdpをMediBangで開くと、
認識されました。
コメント