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あたりがこれにひっかかりそうですが、こいつはそもそものデキがアレなので(苦笑)、そういうとこだけ直してもあんまり意味がないという……。