『コードコンプリート』が届いたので読書中。
2002-07-13
前々回(7/9)の記事の続き(のようなもの)。
なんであんなことを急に言いだしたかといえば、最近「マクロで簡単にWebのリソースをテキストに挿入できないか」といろいろやってみていたのでした。作成したサンプルマクロを下に。実行するとダイアログが出てくるので、そこにURLを入れて[OK]ボタンを押すとカーソル位置にURLの内容を挿入します。
- Webのリソースをテキストに挿入、サンプルマクロのダウンロード(www20020713.zip 1,709 bytes)
これだけだとなんのおもしろみもないんですが、取得したHTMLを加工して利用すればいろいろできそうな気はしますね。
2002-07-10
XENOPROBEというPalmwareを使うとPalmデバイスをエイリアン探知機として使うことができるようになります。どういうテクノロジーが使われてるのかは不明ですが、機能のわりにファイルサイズはすごく小さいです。
……カラーに対応してないからかな。
2002-07-09
「裏テキストを開くときにも、オプション[文字コードの自動判別]と[改行コードの自動判別]の設定が適用される
」ので対策は……、というのを今日書こうと思ってたのですが、中村さんが提示してくださったのでそれを。(更新履歴 2002/07/07(Sun) – Final β Laboratory)
もっといい方法がありそうですが、幻の一発マクロChangeCharsetのソースを見直してみると、textopenの代わりに以下のようなコードを使っていました。
TX text2Body; TX* text2 = &text2Body; txInitText(text2); txSetFileName(text2,szFileName); text2->fKcAuto = TRUE; text2->fCrAuto = TRUE; txOpenText(text2);
コードの意味はapi.tmlの「TX構造体を自前で確保する」を参照。「もっといい方法がありそう
」ということですが、正しいやりかたはこれでしょう。
いまのところここで公開しているマクロで直さないとまずいのはなさそうですが……。HTMLファイルを扱うマクロなんかを書くときは気をつけないと。
これとは逆に、ファイルを単なるバイト列として扱いたいときなどは、文字コードの自動変換がかえって邪魔になるというケースも考えられますね(この場合は上記のコードでtext2->fKcAuto = FALSE; text2->fCrAuto = FALSE;
とすればよい)。DOCVIEWあたりがこれにひっかかりそうですが、こいつはそもそものデキがアレなので(苦笑)、そういうとこだけ直してもあんまり意味がないという……。
2002-07-07
いままでまったく気にしてなかったのですが、textopen関数で裏テキストを開くときにも、オプション[文字コードの自動判別]と[改行コードの自動判別]の設定が適用されるんですね。これはつまり、たとえばISO-2022-JPで記述されているHTMLファイルなどを裏テキストとして開いた場合、前述のオプションがオフになっていると正しくテキストを処理できないケースがあるということを意味します。
たちの悪いことに、このふたつのオプションはなぜかデフォルトではオフになってます(ほとんどの人がオンにしているとは思いますけど)。
裏テキストで文字列の検索をしたり、テキスト間でのカット&ペーストをしている場合は、これが原因で意図しない結果になる可能性がありますね……。
これはちょっと自分のマクロを見直してみなければ([文字コードの自動判別]がオフのときは、マクロに関してもシフトJIS以外のファイルの処理については動作を保障しない、という結論もありだと思いますが)。
もっとも、これの影響を受けるマクロはそんなに多くないと思います。