̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ IT ニュース&コラム 2017/ 1/16 通巻729号 技術版 ソフトウェアデザイン館 Sage Plaisir 21  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄    プログラム ソースの静的設定を一度に行う vbslib の Switches 今回は、先日公開した vbslib 5.91 から、Switches について紹介したいと思います。 vbslib は、以下からダウンロードできます。 https://ja.osdn.net/projects/vbslib/ http://www.sage-p.com/vbslib/vbslib.htm vbslib は、Windows 7/8/10 で主にプログラミングに関する処理を自動化する スクリプト ライブラリ(スクリプト集)です。 スクリプト言語は、VBScript です。 文法的に古い言語ですが、機能的には JavaScript やシェルスクリプト より高機能で、スクリプトでありながらフル機能のデバッガーを使うことも できます。 そんな vbslib から、Switches を使った自動化について紹介します。 たとえば、試用版と製品版で C言語などの #define 定数の定義を切り替える ことがあるでしょう。 ・製品版では  #define MAX_PAGE 9999 ・試用版では  #define MAX_PAGE 10 Switches の設定ファイルには、#define MAX_PAGE が記述されている ファイルのパスと、それぞれの設定内容(テキスト)を記述します。 Switches の設定ファイル: ----------------------------------------------------------- <製品版>#define MAX_PAGE 9999 <試用版>#define MAX_PAGE 10 ----------------------------------------------------------- Switches は、テキスト ファイルの内容の一部の置き換えを行います。 単にテキストを置き換えるだけですが、置き換えるすべての設定内容を 設定ファイルに整理することができることが、Switches が便利である ことの要因です。 また、すべての設定のどれもなければエラーになるので、 ファイルのパスの設定ミスを防ぐことができます。 たとえば、 #define MAX_PAGE ... が書かれていないときや、ファイルが存在しない ときはエラーになります。 Visual Studio などの開発環境では、デバッグ版とリリース版のコンフィグ が自動的に用意されることが多いですが、デバッグ版とリリース版の両方で 共通の設定を共通であるように維持することは、とても大変です。 たとえば、インクルード パスを変更しながらデバッグ版で開発していくと、 リリースする直前で、すべてのインクルード パスをリリース版にコピーする 作業を手動で行わなければなりません。 リリース版を作るたびに作業が 発生するので、とても面倒に感じます。 設定を変えていないだろうから、 作業をしなくてよいだろうと思っていたら、実は必要で、不具合がある プログラムを出荷してしまったなどのミスも発生しやすくなります。 Switches の設定ファイルには、設定の差分のみ記述するので、共通の設定 を共通であるように維持する必要はなくなります。 開発環境では1つのコンフィグ(たとえばデバッグ版)だけ使い、Switches の設定ファイルに設定の差分を記述しておきます。 開発環境の設定ファイルは 通常 XML で記述されているので、XML の差分を記述しておきます。 なお、Switches の設定ファイルに記述する設定値を、 で 囲むと、XML の <, >, & 文字を <, >, & に置き換えて記述する 必要は、なくなります(XMLの仕様)。 開発環境の設定ファイルの中で置き換える XML の内容を知りたいときは、 開発環境の GUI の設定画面で設定を変更する前後について、テキスト ファイル として(diff ツールで)差分を確認してください。 テキスト ファイルの差分を 確認する機能も vbslib に含まれています。 ・デバッグ版では、NDEBUG を定義せず、最適化をオフ ・リリース版では、NDEBUG を定義して、最適化をオン を Switches の設定ファイルに記述するときは、たとえば以下のようにします。 Switches の設定ファイル: ----------------------------------------------------------- <デバッグ版> <リリース版> <デバッグ版> <リリース版> ----------------------------------------------------------- これらの設定のうち、実際に使うコンフィグ(設定の組み合わせ)は、主に 以下の3つだけになるでしょう。 ・デバッグ版(製品版のデバッグ版) ・試用版(試用版のリリース版) ・製品版(製品版のリリース版) 厳密に考えるとデバッグ版の試用版も使うかもしれませんが、ここで言いたい ことは、多くのプログラム開発において、すべての設定の組み合わせを使う わけではないということです。 使用するコンフィグを切り替えるときは、次の手順で行います。 ・設定ファイルの SwitchNow/@target_set_names の値(コンフィグ名)を変更 ・Switches を実行 これだけで、必要な設定の変更がすべて行われます。 Switches の設定ファイル: ----------------------------------------------------------- <デバッグ版>#define MAX_PAGE 9999 <製品版 >#define MAX_PAGE 9999 <試用版 >#define MAX_PAGE 10 <デバッグ版> <製品版 > <試用版 > <デバッグ版> <製品版 > <試用版 > ----------------------------------------------------------- 注目ニュース 一覧 ◇ Nintendo Switch プレゼンテーション&体験会 2017。 https://www.nintendo.co.jp/switch/ … 株価は下げたが、既存タイトルの移植でも、新たな操作方法を楽しめそう。 ◇ ゼルダの伝説 ブレス オブ ザ ワイルドの発売は,Nintendo Switchの発売と同じ2017年3月3日に決定。 http://www.4gamer.net/games/990/G999026/20170113061/ … 背景はすばらしいが、人物の塗り方がこなれていない。 ◇ 年賀状、活版印刷の注文殺到。あえて にじみ明朝 も。 http://www.asahi.com/articles/ASJD8632MJD8UCVL01Y.html … にじみ出るフォント。 ◇ 猫でも分かるソフトウェアのテスト網羅。C2カバレッジは裸の王様。 http://monoist.atmarkit.co.jp/mn/articles/1612/21/news018.html … 効率が悪いユニット テストより、効率の良い総合テストを重視すべし。 ◇ アップルとソニーのスマートウォッチを合体させると最強だ。 http://trendy.nikkeibp.co.jp/atcl/column/16/042500043/121600012/ … 画面のあるスマート ウォッチに画面のないスマート リスト バンドを合体。 ◇ Microsoft、Windows 10におけるコマンドプロンプトの廃止を全面否定。 http://news.mynavi.jp/news/2017/01/06/138/ … なくなることはないが、アクセスしにくくなる。 ◇ 就職好転、続く文系人気 大学入試、大規模私大は狭き門。 http://www.asahi.com/articles/ASK165K4RK16UTIL04F.html … 体育会系の人気がある経営者層のように、能力よりも雰囲気の良さから希望が見える時代へ。 ◇ オープンソースの開発現場では限られたリソースで品質管理をどうしているのか。 http://www.publickey1.jp/blog/17/twitter4jgitbucketasakusa_frameworkpower-assert.html … テスターになってくれる人を集めるために英語にするとか。 ◇ らき☆すたの聖地・鷲宮が10年経っても安泰な理由。 http://ascii.jp/elem/000/001/408/1408712/ … 継続することが大事。 客層に応じた対応を。 ソフトウェアデザイン館 Sage Plaisir 21 ホームページ >>> http://www.sage-p.com/ メルマガ >>> http://www.mag2.com/m/0000083983.html ブログ >>> http://blog.livedoor.jp/sage_p/ ツイッター >>> http://twitter.com/Ts_Neko ダウンロード >>> http://www.sage-p.com/freesoft.htm サポート掲示板 >>> http://www.sage-p.com/kg_ban09/z6037C8.cgi 東日本大震災 >>> http://www.sage-p.com/saigai.html メール >>> ts-neko◇sage-p.com ←◇を@に変えてください 緊急メールは件名に「うどんメール」を付けてください。 このメルマガの登録・解除 - http://www.mag2.com/m/0000083983.htm