開発じたばた日誌

前へ●●●次へ
じたばた日誌目次へ戻る
TSUCHY Softへ戻る


rtfファイルのなぞ 編

 今回の話は脱線の連続でいこうと思う。

 Styxの「お呼びのときだけ現れる」を作ったときのこと。 さてヘルプも修正するかと思い、Styxの最近使ったファイルで開く。 二週間に一度程度開くものはここに入れておくと便利だ。 またヘルププロジェクトも同時に開けるのでなおよい。 さらに今回同時に起動すると、次回に「最近使った..」で並んででてくるのできわめて良い。

 ヘルプは元がリッチテキストというもので、ワードで作るのが習わしだ(リッチテキストを編集できればなんでもいいのだが)。 ところが開こうとしたところでワードが死んでしまう。何度やってもだめだ。

 やられた。前回なに食わぬ顔をして保存/終了したのに。 このような事は仕事でもあった。このときはDOCファイルでワード形式だった。 画像の多いファイルを編集しようとすると、画像の部分が大きな赤い×マークになっているのだ。

 今回はRTF(リッチテキストファイル)形式である。 だがMOにバックアップがあるので「なんだよ〜。ばかぁ」程度であわてる必要はない。 が、MOのファイルは少し古い。最近の更新分は入っていないだろう。現状のファイルを復活できればベストだ。 ワード95はだめでもワード97はいいかもしれない。妻のPCはワード97だ。

 私はバージョンアップに必要性が全く感じられず、さらにワード97で作成したRTFはヘルプコンパイラを通らないので自分のPCはバージョンアップ しなかった。むろん2000なぞ全く使う気はない。Win2000もだ。しかしWin2000でStyxが動かないと報告があったらどうしよう。

 97での読み込みを考えたが少ししゃくである。 そこで別のアプリで読めないか考えた。RTFはべつにMSの独占形式じゃないハズ。 そもそもこれはただのテキストである。

 秀丸で読んでみる。当然読める。しかし中身は全くわからない。 テキストとはいえ、文字はなにやら別の符号に置き換えられ、画像部分も符号化されたテキストになっている。 ファイルが壊れているのかと思ったが、壊れているのかどうかもわからない。

 もしやワードパッドで読めるんじゃないだろうか? ワードパッドを起動し、Styxミニファイラからドラッグ&ドロップしてみる。 少しディスクアクセスしているがなにも出てこない。中身を見ている気配はあるので、最初からはねつけられているのではないらしい。

 なにかピンとくるものがあり、メニューの「開く」でRTFを指定して開いた。 なんと正常に開けるのである。 調査した結果ドラッグ&ドロップは、ドロップしたファイルを現在編集中のファイルに挿入するような動作であるらしい。 そういえばワードもそのような動作をしたような記憶がある。 ドラッグ&ドロップでフィアルを開きたいときは、MDIウィンドウの背景部分にドロップしなければだめだ。

 なんにしても読めたのだから、ワードパッドの機嫌のいいうちに保存しておこう。 ワードパッドで保存したRTFはワード95でも読めた。しかもファイルサイズが880kから700kバイトにまで減少している。 この理由はあとでわかるのだが、このときは「無駄をなくしてすっきり保存した」ように勘違いしていた。

 このような現象はVBAでも起こる(内容は全くちがうのだろうが)。 VBAの形式のファイルがあるとする。一度VBAで読み込み、これをエクスポートして異なる形式で保存する。 そしてそのエクスポートしたファイルを読み込み、再度VBA形式で保存する。するとファイルサイズが1/3程度になったりする。 いったいなにが保存されているのだろうか?変更履歴を全部持っているとか。

 さてめでたしというわけで、「お呼びの時だけ現れる」の追加分を書こうと思ったら、なにやら見た感じがいつもと違う。 隠し文字や二重下線の文字装飾がなくなっている。ワードパッドでみたらやっぱりなくなっていた。 ワードパッドはこれらの修飾をサポートしていないのか?いろいろ編集してみるとやはりそうであった。

 ヘルプを作る際、この文字修飾は重要だ。これらはヘルプでのジャンプ命令とジャンプ先になるのだ。 いくらテキスト部分が復活できても、これがなくなったのでは復旧作業によけい手間がかかる。

 ここまでの苦労と淡い期待は全ておじゃんになった。結局MOから古いRTFを復活させた。 そして最近のヘルプファイルを見て、失われた部分をRTFに加えていった。 これではまるでリバースエンジニアリングのような、逆アセンブルをやっているようなものだ。全くまぬけな作業だ。 幸いにも失われた部分は少なかったので30分程度で復旧した。逆に言えば最近は大した機能追加をしていないということか。

 それにしても今回のようなことが起こるとは、うっかりバックアップもとれないということを意味する。 なにしろ正常保存したつもりのファイルが読めなくなるのだから。 もしも読めなくなったファイルをMOにバックアップしたら、昔の読めるファイルは上書きされ、読めないファイルだけが残ることになる。 これからは一度保存したら、もう一度開いて確認しなければならない。

 私のような、いやもっと悲惨な目にあった人は極めて多いと思う。 今回のは笑ってすまされる程度であり、1時間程度の手間でよい教訓を得たと言える。

1999.7.27