(57)【要約】【課題】  アプリケーションごとに独自の構成ファイル処理コードを実施する必要のないアプリケーションソフトウェア構成方法を提供する。【解決手段】  アプリケーションソフトウェアの構成方法は、構成ファイル処理ライブラリ（１０４）を提供するステップを有する。また、構成ファイル処理ライブラリ（１０４）を利用して、構成ファイル処理コードを生成する。また、構成ファイル処理コードを利用して、構成ファイル処理ライブラリ（１０４）内のデータを読み取り、操作する。また、構成ファイル処理ライブラリ（１０４）によりアプリケーション（１０２）をコンパイルする。さらに、構成ファイル処理アプリケーションのプログラミングインタフェースのインスタンシエーションによって、構成ファイル（１００）は作成、操作または処理される。【選択図】        図１
2006085740.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションソフトウェア（１０２）の構成方法であって、前記アプリケーションソフトウェア（１０２）を構成ファイル（１００）と共に動作可能とする構成処理ライブラリ（１０４）を提供するステップと、前記アプリケーションソフトウェア（１０２）を前記構成処理ライブラリ（１０４）でコンパイルし、汎用構成処理コードを生成するステップと、前記構成ファイル（１００）を読み取りまたは操作する構成ファイル処理アプリケーションプログラミングインタフェースを、インスタンシエーションするステップと、前記汎用構成処理コードを利用して前記構成ファイル（１００）内のデータを読み取り操作するステップと、を有することを特徴とするアプリケーションソフトウェア構成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションソフトウェアに係り、特に、汎用構成ファイル処理ライブラリおよびその実行に関する。
【背景技術】
【０００２】
アプリケーションソフトウェアは、多くの場合、ユーザの作業環境に関する構成情報が異なる環境において使用可能であることが要求されている。この構成情報は、概して永続的であり、アプリケーションソフトウェアが実行されていない間にも保持されなければならない。このため、構成情報は、一般に、ユーザまたは他のアプリケーションによって操作され得る１つまたは複数の異なった構成ファイルに格納されている。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
構成ファイルのフォーマットには、一般的な標準が存在しない。このため、各アプリケーションソフトウェアは、その構成ファイルのコンテンツを処理、追加、削除および変更するために、その独自の構成ファイル処理コードを提供する必要がある。したがって、アプリケーションソフトウェア毎にその独自の構成ファイル処理コードを実施する必要のない汎用の構成ファイルプロセッサが必要とされている。
【課題を解決するための手段】
【０００４】
本発明によれば、柔軟かつ汎用的な構成の配置が提供される。また、汎用の構成ファイル処理ライブラリを利用して、アプリケーションをコンパイルし、これにより複数のアプリケーションが構成ファイルを処理可能にする。
【０００５】
本発明によれば、アプリケーションソフトウェアの構成方法は、構成ファイル処理ライブラリを提供するステップを有する。構成ファイル処理ライブラリにより、該アプリケーションソフトウェアは構成ファイルを用いた動作が可能となる。また、構成ファイル処理ライブラリを利用して、汎用的な構成ファイルの処理コードを生成する。また、構成ファイル処理コードを利用して、該構成ファイル処理ライブラリ内のデータを読み取り、操作する。また、構成ファイル処理ライブラリにより、アプリケーションをコンパイルする。構成ファイルを処理するアプリケーションプログラムインタフェース（ＡＰＩ）をインスタンシエーションする(instantiate)ことにより、構成ファイルは読み取られ、操作される。
【０００６】
さらに本発明によれば、入力列が得られ、構成ファイルから得られた数値に関連した該入力列において、トークン(token)が置換される。
図面を参照し、以下の詳細な説明によって本発明がより理解されよう。図中、同様の参照符号は同様の構成要素を示す。
【発明の効果】
【０００７】
以上の説明から明らかなように、本発明のアプリケーションソフトウェアの構成方法によればアプリケーションソフトウェアごとに独自の構成ファイル処理コードを実施することなく、複数のアプリケーションが構成ファイルのコンテンツを処理、追加、削除および変更という処理を可能にしている。
【発明を実施するための最良の形態】
【０００８】
図１は、アプリケーション１０２と、構成ファイル１００と、本発明に係る構成ファイルプロセッサを実施する構成ファイル処理ライブラリ１０４との関係を示すブロック図である。アプリケーション１０２は、構成ファイル処理ライブラリ１０４でコンパイルされ、アプリケーション１０２が必要とするクラスおよび生成関数(constructor)を決定して、構成ファイル処理ライブラリ１０４内のデータを読み取りかつ操作するための構成ファイル処理コードを生成する。アプリケーション１０２は、実行時に、汎用構成ファイルプロセッサのアプリケーションプログラムインタフェース（ＡＰＩ）をインスタンシエーションすることによって、構成ファイル１００は、ユーザの作業環境とは無関係にアプリケーションによって読み取られ操作される。
【０００９】
図２は、構成ファイル１００の一形式である。構成ファイル１００は、通常、１つまたは複数の一次キーと、一組のフィールドとを有し、またオプションとして一組のコメントを有する。本実施形態の構成ファイル１００は、コメントヘッダ（COMMENT HEADE）１０２と、行前コメント（COMMENTS BEFORE LINE）１０４と、行末コメント(COMMENT)１０６と、該一次キーおよび関連フィールド情報を備えた複数行１１０とを有する。一般的に、一次キー１１２は属性名を定義し、これに関連するフィールドは、構文解析の目的で使用される１つまたは複数の分離記号１１４，１１８とともに、該属性名と関連づけられた値１１６を有する。
図２において、属性ATTRIBUTE NAME 1は、これに関連するＪ値、すなわち、VALUE A，VALUE B，…，VALUE Jを有し、それぞれコンマによって区切られる。属性ATTRIBUTE NAME Nは、これに関連するK値、すなわち、VALUE A、VALUE B、・・・、VALUE Kを有する。
【００１０】
より詳細な説明のために、図３に、構成ファイルの一例「SAMPLE.CFG」を示す。
【００１１】
図３において、これらデータの決められたレイアウトは、左から右に、「属性名」、「：」（コロン）、そして「，」( コンマ)によって区切られた５つの値である。個人名には、これに関連する５つのフィールドがある。通りおよび番地は第１値、市は第２値、州は第３値、郵便番号は第４値、電話番号は第５値にマッピングされる。
図３は、構成ファイルとして格納されるデータベースの一例である。
【００１２】
当業者によって理解されるように、所与の構成ファイルのフォーマットは任意であり、どのようなシンタックス（syntax）を用いても定義できる。構成ファイルは、任意の数の一次キー、次に、ゼロ以上の関連フィールド、コメントおよびフィールド区切りのための分離記号を有することが可能である。さらに複雑にするために、各一次キーは、これに関連する多くの複数のフィールドを有しても良い。
【００１３】
構成ファイル処理ライブラリ１０４は、アプリケーション１０２をいかなる種類の構成ファイル１００とも共に使用可能とするユーティリティであり、一次キー１個につき任意の数のフィールドと、任意の数および位置のコメントのためのフィールドと、任意の数およびフォーマットのフィールドを区切る分離記号を有する。アプリケーション１０２を構成ファイル処理ライブラリ１０４でコンパイルすると、アプリケーション１０２は、オブジェクト指向を用いた処理方法により構成ファイル１００を容易に作成、操作および／または処理できるようになる。これらの方法により、アプリケーション１０２は、構成ファイル１００内の属性および関連値を「獲得」し、「設定」することができる。好適な実施形態において、構成ファイル処理ライブラリ１０４により、アプリケーション１０２は、入力列に含まれるトークンを構成ファイル１００からの関連値と置換することによってストリングを「拡張」することもできる。
【００１４】
本発明の好適な実施形態によると、構成ファイル処理ライブラリ１０４は、「ＧｅｔＦｉｒｓｔ」方式に対応し、構成ファイル内の第１属性の値を有したデータ構造をアプリケーション１０２に返す。構成ファイル処理ライブラリ１０４は、「ＧｅｔＮｅｘｔ」方式にも対応しているが、これは、「ＧｅｔＦｉｒｓｔ」方式と併用すると、アプリケーションの開発者が、構成ファイル１００内の全てのエントリを繰り返し、それぞれを必要に応じて処理することができる。構成ファイル処理ライブラリ１０４は、指定された属性名に基づいて値の適切なリストを返す「ＧｅｔＡｔｔｒｉｂｕｔｅ」方式も支援している。また、構成ファイル処理ライブラリ１０４は、アプリケーションの開発者が、構成ファイル１００内の属性を保存し、それが存在する場合には属性を同一属性で上書きし、あるいは、指定された属性名が構成ファイル１００に固有であればリストの末尾に新たな属性を追加することができる「ＳｅｔＯｒＲｅｐｌａｃｅ」方式にも対応している。また、構成ファイル処理ライブラリ１０４は、アプリケーションの開発者が、構成ファイル１００からの関連値を置換したいと望むトークンを有したストリングを入力として指定することができる「ＥｘｐａｎｄＳｔｒｉｎｇ」方式にも対応している。
【００１５】
アプリケーション１０２は様々な構成ファイル１００を必要とするので、本発明の構成ファイル処理ライブラリ１０４は、構成ファイル名の自由な名前領域、構成ファイル処理ライブラリ１０４の全アスペクト(aspect)についての多数のバイトの文字への対応、多数の一次キーへの対応、一次キーごとの多数のフィールド、および一次キーごとの多数のフィールドに対応している。構成ファイル処理ライブラリ１０４はまた、構成ファイル１００における各行の一次キーおよび関連するフィールドにパーズ(parse：構文解析）するために用いられる各分離記号を定義し、概念的な名称、例えば、「通り」、「市」、「州」、「郵便番号」、「電話番号」を各属性のフィールドと関連させて、人間によるデータの判読が容易に可能なようにし、また各一次キーについて行末コメントを有することができるようにも対応する。
【００１６】
本発明の好適な実施形態によると、構成ファイル処理ライブラリ１０４は、汎用の構成ファイル処理機能を集合的(collectively)に提供する一組のＣ＋＋クラス
を有する。一次クラスは、
ConfigFile<cfgFile>(<filename>,<sepChars>,<attrNames>,<IgnoreEOLcomments>)の形式の１つの生成関数を有する。
【００１７】
「ｃｆｇＦｉｌｅ」は、クラスをインスタンシエーションに割り当てる可変的な名称である。引数「ｆｉｌｅｎａｍｅ」は、処理される構成ファイルのファイルパスおよびファイル名を特定するストリングである。引数「ｓｅｐＣｈａｒｓ」は、「ｆｉｌｅｎａｍｅ」において特定された構成ファイルからの行を関連する「属性名」および「値」にパーズする際に認識する分離記号のホワイトスペース区切りリストである。分離記号は、１つのパーズフィールドにつき１個の分離記号で左から右の順に処理される。例えば、ストリング「：＄」が「ｓｅｐＣｈａｒｓ」として指定される場合、一次キー、すなわち属性名は、所与の行の最初に現れる「：」記号に先行するいずれでもよく、また、「＄」記号は、この属性の値をパーズするために用いられる分離記号として認識される。「ｓｅｐＣｈａｒｓ」ストリングは、任意の数の文字を有することができる。例えば、ストリング「：＄％」を「ｓｅｐＣｈａｒｓ」として指定すると、「：」記号は、「属性名」を「第１値」から区切るものとして認識され、「＄」記号は、「第１値」を「第２値」から区切るものとして認識され、また、「％」記号は、「第２値」を「第３値」から区切るものとして認識される。さらに「＃」記号が行に存在するときには、「％」記号は、「第３値」を「第４値」から、「第４値」を「第５値」からなどのように、区切るものとしても認識される。
【００１８】
前述したように、分離記号は、「ｓｅｐＣｈａｒｓ」ストリングの引数から左から右にパーズされる。分離記号が所与の行に値より多く存在する場合は、「ｓｅｐＣｈａｒｓ」の解析されていない分離記号は無視される。所与の行に「ｓｅｐＣｈａｒｓ」ストリングで指定された分離記号より多くの値が存在する場合に、「ｓｅｐＣｈａｒｓ」ストリングにおいて指定された末尾の分離記号は、行の残りの部分をパーズする一方で、分離記号として認識される。例えば、「ｓｅｐＣｈａｒｓ」ストリングが「，」記号を有する場合は、この分離記号を用いて、ファイルの所与の一次キーと関連するフィールドの数に関係なく、標準コンマ区切りファイルをパーズする。「，」記号は、一次キーの全フィールドを区切るものとして認識される。
【００１９】
「ｓｅｐＣｈａｒｓ」パラメータにおいて指定されたヌル値は、デフォルトの分離記号（例えば、「，」記号）を用いて行中のフィールドを区切ることを示す。
【００２０】
パラメータ「ａｔｔｒＮａｍｅｓ」は、概念的な名称を構成ファイル中の一次キーのフィールドにマッピングする。これにより、構成ファイルのデータを人間が判読可能な形式で処理することが可能となる。「ａｔｔｒＮａｍｅｓ」をフィールドと関連させることによって、アプリケーションの開発者は、これらの概念的な名称を用いて構成ファイルのコンテンツを処理できる。例えば、図３の構成ファイル「SAMPLE.CFG」を処理するためには、「ａｔｔｒＮａｍｅｓ」ストリングを「通り市州郵便番号電話番号」として指定する。このことは、概念的な識別子「通り」、「市」、「州」、「郵便番号」および「電話番号」を構成ファイル「SAMPLE.CFG」における各属性名の各フィールドと関連づける。一次キーのフィールドが、パラメータ「ａｔｔｒＮａｍｅｓ」によって指定された名称より多く存在すると、ストリング「１」，「２」，「３」，？として表される整数を用いてその値を特定する。「ａｔｔｒＮａｍｅｓ」パラメータについてヌル値が指定された結果、デフォルトの整数ストリング（すなわち、「１」，「２」，「３」等）が一次キーごとに値を識別するために使用される。
【００２１】
パラメータ「Ｉｇｎｏｒｅ ＥＯＬ ｃｏｍｍｅｎｔｓ」は、真または偽のいずれかである。これを真と設定すると、（図３の構成ファイル「SAMPLE.CFG」において「＃」記号で示される）構成ファイルの行末コメントは、構成ファイルを一次キーおよび関連フィールドにパーズする際に完全に無視される。パラメータ「Ｉｇｎｏｒｅ ＥＯＬ ｃｏｍｍｅｎｔｓ」を偽と設定すると、行末コメントは、構成ファイル行の一部として処理される。この場合、「ｓｅｐＣｈａｒｓ」ストリングは、コメントが正確にパーズされるように「＃」記号を末尾の文字として有するものとする。
【００２２】
本実施形態の構成ファイル処理ユーティリティを利用するために、アプリケーション１０２は、生成関数
ConfigFile<cfgFile>(<filename>,<sepChars>,<attrNames>,<IgnoreEOLcomments>)を使用し、固有の「ｆｉｌｅｎａｍｅ」、「ｓｅｐＣｈａｒｓ」、「ａｔｔｒＮａｍｅｓ」、「Ｉｇｎｏｒｅ ＥＯＬ ｃｏｍｍｅｎｔｓ」の各パラメータをインタフェースする構成ファイル１００に渡して、ＣｏｎｆｉｇＦｉｌｅクラスの、図３に示すような構成ファイル処理オブジェクト３００をインスタンシエーションするためのコードを有する。構成ファイル処理オブジェクト３００がインスタンシエーションされると、「ｆｉｌｅｎａｍｅ」パラメータによって指定された構成ファイル１００は、構成ファイル処理オブジェクト３００の１つまたは複数の「ｇｅｔＦｉｌｅＮａｍｅ」、「ｇｅｔＦｉｒｓｔＡｔｔｒｉｂｕｔｅ」、「ｇｅｔＮｅｘｔＡｔｔｒｉｂｕｔｅ」、「ｇｅｔＡｔｔｒｉｂｕｔｅ」、「ｓｅｔＯｒＲｅｐｌａｃｅＡｔｔｒｉｂｕｔｅ」および「ｅｘｐａｎｄＳｔｒｉｎｇ」の方式に関する方式呼び出しを実行することによって、指定された「ｓｅｐＣｈａｒｓ」、「ａｔｔｒＮａｍｅｓ」および「Ｉｇｎｏｒｅ ＥＯＬ ｃｏｍｍｅｎｔｓ」に応じて処理され得る。好適な実施形態において、この処理の結果は、検索のためにインメモリ(in-memory)データ構造に格納される。構成ファイル１００は、インメモリデータ構造が変化すると、インメモリデータ構造と同期して保持される。
【００２３】
構成ファイル処理オブジェクト３００は、「ｇｅｔＦｉｌｅＮａｍｅ」、「ｇｅｔＦｉｒｓｔＡｔｔｒｉｂｕｔｅ」、「ｇｅｔＮｅｘｔＡｔｔｒｉｂｕｔｅ」、「ｇｅｔＡｔｔｒｉｂｕｔｅ」、「ｓｅｔＯｒＲｅｐｌａｃｅＡｔｔｒｉｂｕｔｅ」および「ｅｘｐａｎｄＳｔｒｉｎｇ」の各方式を実施する。
【００２４】
「ｇｅｔＦｉｌｅＮａｍｅ」方式は、パスを有する文字列を構成ファイルに返すか、あるいは文字列が存在しない場合にはファイルを作成する。好適な実施形態において、「ｇｅｔＦｉｌｅＮａｍｅ」の形式は、 char * getFileName () である。
【００２５】
「ｇｅｔＦｉｒｓｔＡｔｔｒｉｂｕｔｅ」方式は、構成ファイルにおける第１データエントリについての属性名（すなわち、一次キー）および関連する属性値（すなわち、関連フィールド）を返す。これら属性名および関連値は、生成関数中に渡された「ｓｅｐＣｈａｒｓ」に基づいて、インスタンシエーション時に決定される。好適な実施形態における、「ｇｅｔＮｅｘｔＡｔｔｒｉｂｕｔｅ」の形式は、 int getFirstAttribute(char *& name, AttributeList *& attrList) である。
【００２６】
「ｇｅｔＮｅｘｔＡｔｔｒｉｂｕｔｅ」方式は、構成ファイルにおける次のデータエントリについての属性名（すなわち、一次キー）および関連する属性値（すなわち、フィールド）を返す。これら属性名および値は、生成関数中に渡された「ｓｅｐＣｈａｒｓ」に基づいてインスタンシエーション時に決定される。好適な実施形態において、「ｇｅｔＮｅｘｔＡｔｔｒｉｂｕｔｅ」の形式は、 int getNextAttribute(char *& name, AttributeList *& attrList) である。構成ファイルにおいてこれ以上のデータエントリがなければ、該方式は、「−１」を返し、「ｎａｍｅ」および「ａｔｔｒＬｉｓｔ」をヌル（ＮＵＬＬ）に設定する。
【００２７】
「ｇｅｔＡｔｔｒｉｂｕｔｅ」方式は、指定された属性名に基づいて値の適切なリストを返す。これら属性名および値は、生成関数中に渡された「ｓｅｐＣｈａｒｓ」に基づいてインスタンシエーション時に決定される。好適な実施形態における、「ｇｅｔＡｔｔｒｉｂｕｔｅ」の形式は、 int getAttribute(const char *& name, AttributeList *& attrList) である。構成ファイルにおいて、指定された「ｎａｍｅ」と一致するデータエントリがなければ、該方式は、「−１」を戻し、「ｎａｍｅ」および「ａｔｔｒＬｉｓｔ」をヌル（ＮＵＬＬ）に設定する。
【００２８】
「ｓｅｔＯｒＲｅｐｌａｃｅＡｔｔｒｉｂｕｔｅ」方式は、これに渡される「ｎａｍｅ」および「ａｔｔｒＬｉｓｔ」パラメータに基づいて指定の構成ファイルにおけるエントリを作成する。生成関数において指定された「ｓｅｐＣｈａｒｓ」を使用して、構成ファイルにおいてエントリを作成する。好適な実施形態において、「ｓｅｔＯｒＲｅｐｌａｃｅＡｔｔｒｉｂｕｔｅ」の形式は、 int setOrReplaceAttribute(char * name, AttributeList * attrList) である。「ｓｅｔＯｒＲｅｐｌａｃｅＡｔｔｒｉｂｕｔｅ」方式は、方式呼び出しの実行が完了した際に問題が発生しない限り「０」（ＳＵＣＣＥＳＳ）を返す。
【００２９】
「ｅｘｐａｎｄＳｔｒｉｎｇ」方式は、構成ファイルに格納された値を用いて、ストリング中の特定のトークンを構成ファイルからの関連値に置換する。認識され置換されるトークンは、以下の形式である。 $[<attribute name> : <attribute value>] 式中、「ａｔｔｒｉｂｕｔｅ ｎａｍｅ」は、構成ファイルからの所望の属性名であり、「ａｔｔｒｉｂｕｔｅ ｖａｌｕｅ」は、どの値を検索するかを識別する。例えば、サンプル構成ファイルが「／ｃｏｎｆｉｇ．ｆｉｌe」にあり、以下のインスタンシエーション
ConfigFile configFile ("/config.file",":,","street city state zipcode telephon",1)；とすると、「ｅｘｐａｎｄＳｔｒｉｎｇ」方式は、以下のようになる。 char * newStr = configFile.expandString("Bill Brown is from the cityof $[Bill Brown:city], in the state of $[Bill Brown:state]")；該方式を実行後、「ＮｅｗＳｔｒ」には、「Bill Brown is from the city ofElmville in the state of Colorado」が含まれる。
【００３０】
Ｃ＋＋コード実施を、図５に示す。
【００３１】
例示的な実施形態に関して本発明を説明してきたが、本発明の精神または範囲から逸脱することなく、この例示的な実施形態に各種の改変および変更を加えてもよいことは当業者によって理解されよう。本発明の範囲は、図示および説明された例示的な実施形態にいかなる方法でも限定されるものではなく、本発明は、添付の特許請求の範囲によってのみ制限されることが意図される。
【００３２】
以下に本発明の実施の形態を要約する。
１．アプリケーションソフトウェア（１０２）の構成方法であって、前記アプリケーションソフトウェア（１０２）を構成ファイル（１００）と共に動作可能とする構成処理ライブラリ（１０４）を提供するステップと、前記アプリケーションソフトウェア（１０２）を前記構成処理ライブラリ（１０４）でコンパイルし、汎用構成処理コードを生成するステップと、前記構成ファイル（１００）を読み取りまたは操作する構成ファイル処理アプリケーションプログラミングインタフェースを、インスタンシエーションするステップと、前記汎用構成処理コードを利用して前記構成ファイル（１００）内のデータを読み取り操作するステップと、を有するアプリケーションソフトウェア構成方法。
【００３３】
２．データ構造（１１０）を、前記構成ファイル（１００）の第１属性（１１２）の値（１１６）を有する前記アプリケーションソフトウェア（１０２）に返すステップと、を有する上記１記載のアプリケーションソフトウェア構成方法。
【００３４】
３．属性名（１１２）を特定するステップと、前記属性名（１１２）の受理に応答して値（１１６）の所定リストを前記構成ファイル（１００）から提供するステップと、を有する上記１または２記載のアプリケーションソフトウェア構成方法。
【００３５】
４．前記ライブラリは、汎用構成ファイル処理能力を集合的に提供するＣ＋＋クラスを有する上記１、２または３記載のアプリケーションソフトウェア構成方法。
【００３６】
５．前記アプリケーションソフトウェア（１０２）は、前記構成ファイル（１００）の処理オブジェクトをインスタンシエーションするコードを有する上記１、２、３または４記載のアプリケーションソフトウェア構成方法。
【００３７】
６．所定の生成関数を用いて構成処理オブジェクトをインスタンシエーションするステップと、前記構成処理オブジェクトの少なくとも１つの方式についての方式呼び出しを実行するステップと、を有する上記１、２、３、４または５記載のアプリケーションソフトウェア構成方法。
【００３８】
７．処理結果をインメモリデータ構造に格納するステップを有する上記６記載のアプリケーションソフトウェア構成方法。
【００３９】
８．前記構成ファイル（１００）を前記インメモリデータ構造と同期させるステップを有する上記７記載のアプリケーションソフトウェア構成方法。
【００４０】
９．前記構成ファイル（１００）の次のデータエントリについての属性名（１１２）と関連属性値（１１６）とを検索するステップを有する上記６記載のアプリケーションソフトウェア構成方法。
【００４１】
１０．入力列を得るステップと、前記入力列のトークンを、前記構成ファイル（１００）から得られた関連値と置換するステップと、を有する上記１、２、３、４、５、６、７または８記載のアプリケーションソフトウェア構成方法。
【図面の簡単な説明】
【００４２】
【図１】本発明に係るシステムを示すブロック図である。
【図２】構成ファイルの一形式を示す説明図である。
【図３】構成ファイルの一例を示す説明図である。
【図４】本発明に係る構成ファイルプロセッサオブジェクトのインスタンシエーションのデータモデルを示す説明図である。
【図５】Ｃ＋＋コードの実施を示す説明図である。
【符号の説明】
【００４３】
１０２  アプリケーション
１００  構成ファイル
１０４  構成ファイル処理ライブラリ
１１０  データ構造
１１２  一次キー
１１６  関連値
【図１】
2006085740.tif 000003
【図２】
2006085740.tif 000004
【図３】
2006085740.tif 000005
【図４】
2006085740.tif 000006
【図５】
2006085740.tif 000007
【手続補正書】
【提出日】平成18年2月1日(2006.2.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータ上で実行されるアプリケーションソフトウエアを汎用構成ファイルにアクセスさせるための方法であって、コンピュータによってアクセス可能な前記汎用構成ファイルは前記アプリケーションソフトウエアを実行し、かつ前記アプリケーションソフトウエアによって使用されるデータを備える方法において、
汎用構成ファイル処理ライブラリをコンピュータ上に提供するステップであって、前記汎用構成ファイル処理ライブラリは任意のテキスト構成ファイルのデータを汎用的に読み取りかつ操作するための１つ以上の方式を備えるステップであり、前記１つ以上の方式は、可変的な構成ファイルまたは可変的な構成ファイルへの可変的なポインタと、前記可変的な構成ファイルのパーズに固有の一次キーのリストを備える可変的な一次キーリストと、前記可変的な構成ファイルのパーズに固有の分離記号の可変的なリストを備える可変的な分離記号リストに基づいて、任意の数の一次キーと、一次キー１個につき任意の数のフィールドと、一次キー１個につき可変的な数のフィールドとのパーズを支援するステップと、
前記アプリケーションソフトウエアのソースコードをコンピュータ上に提供するステップであって、前記ソースコードは前記１つ以上の方式の少なくとも１つに対する方式呼び出しを備えており、前記方式呼び出しの各々は、前記アプリケーションソフトウエアと関連した所与の構成ファイルを前記可変的な構成ファイルと特定し、前記所与の構成ファイルをパーズするための前記所与の構成ファイルと関連した所与の一次キーリストを前記一次キーの可変的なリストと特定し、前記所与の構成ファイルパーズするための前記所与の構成ファイルと関連した所与の分離記号リストを前記分離記号の可変的なリストと特定するステップと、
コンピュータによって、前記アプリケーションソフトウエアの前記ソースコードを前記汎用構成ファイル処理ライブラリでコンパイルして、前記アプリケーションソフトウエアの実行可能なファイルを生成するステップと、を備える方法。
【請求項２】
前記実行可能なファイルをコンピュータ上で実行するステップをさらに備えており、前記実行可能なファイルを実行することにより、前記所与の一次キーリストと前記所与の分離記号リストに基づいた前記所与の構成ファイルをパーズする、請求項１に記載の方法。
【請求項３】
構成ファイルを処理するためにアプリケーションソフトウエアをコンピュータ上で実行するための方法であって、
前記アプリケーションソフトウエアから呼び出された方式によって、所与の構成ファイルまたは所与の構成ファイルへのポインタと、前記所与の構成ファイルと関連しかつ前記所与の構成ファイルのパーズに固有の一次キーのリストを備える所与の一次キーリストと、前記所与の構成ファイルと関連しかつ前記所与の構成ファイルのパーズに固有の分離記号の可変的なリストを備える所与の分離記号リストとを受け取るステップであって、前記アプリケーションソフトウエアから呼び出された前記方式は、一次キーリストの変数によって定義されるような任意の数の一次キーへの可変的な構成ファイルと、分離記号リストの変数によって定義されるような一次キー１個につき任意の数のフィールドおよび一次キー１個につき可変的な数のフィールドとの汎用パーズを支援するステップと、
前記アプリケーションソフトウエアから呼び出された前記方式によって、前記可変的な構成ファイルを前記所与の構成ファイルと関連付けるステップと、
前記アプリケーションソフトウエアから呼び出された前記方式によって、前記可変的な一次キーリストを前記所与の一次キーリストと関連付けるステップと、
前記アプリケーションソフトウエアから呼び出された前記方式によって、前記可変的な分離記号リストを前記所与の分離記号リストと関連付けるステップと、
前記アプリケーションソフトウエアから呼び出された前記方式によって、前記所与の一次キーリストからの関連一次キー識別子と、前記所与の分離記号リストからの前記関連一次キーと関連した１つ以上の関連分離記号とに従って、一次キーと、前記所与の構成ファイルにおける前記一次キーと関連した多数のフィールドとをパーズするステップと、を備える方法。
【請求項４】
前記関連一次キーと関連した前記１つ以上の関連分離記号は複数の分離記号を備える、請求項３に記載の方法。