INI ファイル キーへのアクセス

INI ファイルは、一般にユーザ インタフェース状態の設定やその他の任意の情報を格納するのに使用される純粋な ASCII テキスト ファイルです。データは、任意の数のキーとそれに対応する値を持ったカテゴリに編成されます。

MAXScript は、INI ファイルを管理するための非常にエラーに強い関数セットを提供しています。たとえば、存在しない INI ファイルに新しいカテゴリやキーを設定すると、別のファイル管理関数を呼び出さなくても、自動的に新しいファイルが生成されます。また、既存のファイルもしくは存在しないファイルから存在しないキー値を取得すると、エラーを発生させずに空の文字列を返します。

INI ファイル内のカテゴリ、キー、値の読み込み、書き込みには、以下のメソッドを使用します。

getINISetting <filename_string> <section_string> <key_string> 		

指定されたファイルから INI の設定を読み込みます。ファイル内の <section_string> で識別されるセクションが検索され、続いて <key_string> で指定されるキーが検索されます。

このキーに割り当てられる値は、文字列として返されます。

指定されたファイル、セクション、あるいはキーが見つからない場合は、空の文字列 "" が返されます。

例:

getINISetting "c:/temp/test.ini" "Directories" "Scenes"

3ds Max 6 以降では、.ini ファイルのみが指定されている場合、このメソッドは .ini ファイル内のセクションの配列を返します。

3ds Max 6 以降では、.ini ファイルとセクションのみが指定されている場合、このメソッドはセクション内のキーの配列を返します。

   

setINISetting <filename_string> <section_string> <key_string> <key_value_string> [ forceUTF16:<boolean> ]

指定されたファイルに INI 設定を設定します。

キー値がファイルに書き込まれた場合は true、キー値が書き込まれなかった場合は false を返します。

ファイル内の <section_string> で識別されるセクションが検索され、続いて <key_string> で指定されるキーが検索されます。

その後、<key_value_string> が割り当てられます。

指定されたファイル、セクション、あるいはキーが見つからない場合は、新しいファイル、セクション、またはキーが作成されます。

指定されたファイルが読み込み専用、あるいはファイルが MAXScript 内で開かれた場合は、キー値はそのファイルには書き込まれません。

setINISetting "c:/temp/test.ini" "Directories" "Scenes" "c:/3dsmax/scenes"

3ds Max 2013 以降で利用可能なオプションの forceUTF16: キーワード引数は、値を UTF16 エンコーディングまたは ASCII テキストのどちらを値の書き込みで使用するかコントロールします。

既定では、オプションのキーワード引数を指定しない場合、または true に指定する場合、UTF16 エンコーディングが使用されます。

オプションのキーワードを false に指定すると、値は ASCII テキストとして書き込まれます。

3ds Max 2013 以降で利用可能な追加のメソッドは、それが供給されない場合の forceUTF16: オプション キーワード引数の既定の振る舞いを制御します。

<bool>setIniForceUTF16Default <bool>

新しく起動した後のキーワード引数 forceUTF16 の既定値は true です。

setIniForceUTF16Default false を呼び出すと、 setINISetting() メソッドの既定のエンコーディングは ASCII に設定されます。

setIniForceUTF16Default true を呼び出すと、 setINISetting() メソッドの既定のエンコーディングは UTF16 に設定されます。

既定の動作はセッションをまたいで引き継がれず、再起動すると forcUTF16 の既定のエンコーディングに戻ります。

setINISetting "c:/temp/deleteme.ini" "Hello" "World" "10" --utf16 encoding by default
setINISetting "c:/temp/deleteme.ini" "Hello" "World" "10" forceUTF16:false --force ASCII
setIniForceUTF16Default false --switch default behavior when keyword argument unsupplied
setINISetting "c:/temp/deleteme.ini" "Hello" "World" "10" --ASCII by default
setINISetting "c:/temp/deleteme.ini" "Hello" "World" "10" forceUTF16:true --force utf16 encoding
setIniForceUTF16Default true --switch back to startup default 

   

delIniSetting <filename_string> <section_string> <key_string>   

所定の INI ファイルの指定のセクションから、指定されたキーを削除します。

   

delIniSetting <filename_string> <section_string> 

所定の INI ファイルのセクションとセクション内のすべてのキーを削除します。

   

hasINISetting <filename_string> <section_string> [<key_string>] 

指定されたファイル内に INI 設定が存在する場合は true を返します。

このメソッドは、3ds Max 2008以降で使用可能です。

ファイル内の <section_string> で識別されるセクションが検索され、続いて <key_string> で指定されるキーがテストされます。

<key_string> が指定されない場合、 <section_string> で指定されたセクションがテストされます。

   

関連するメソッド:

getMAXIniFile() 

3ds Max 6 以降では、現在の 3dsmax.ini ファイルを文字列で返します。ini 設定をレジストリ内に保存する製品の場合、このメソッドは undefined を返します。

関連事項