3ds Max 設定ファイル 3dsmax.ini にアクセスするには、cfgMgr 構造体を使用します。
cfgMgr 構造体は、次に示す関数を公開します。
<string> cfgMgr.getIniFile()
3ds Max の INI ファイルの完全パスを返します。
<array> cfgMgr.getAllSectionNames()
INI ファイル内のすべてのセクション名からなる配列を返します。
cfgMgr.setSection <section_string>
現在のセクションを指定した名前に設定します。セクション名が存在しない場合は、指定した名前を持つ新しいセクションが作成されることに注意してください。cfgMgr
の他の取得/設定/削除関数は、現在設定されているセクションに作用します。
<string> cfgMgr.getSectionName()
現在のセクション名(前回読み込まれたセクションまたは setSection()
で設定されたセクション)を取得します。他の取得/設定/削除関数は、現在のセクションに作用します。
<boolean> cfgMgr.sectionExists <section_string>
指定したセクションが INI ファイル内に既に存在する場合は true、それ以外の場合は false を返します。セクション名の照合では大文字と小文字が区別されないことに注意してください。
<boolean> cfgMgr.deleteSection <section_string>
指定したセクションを削除します。
この関数は、常に true を返します。
[<array>|undefined] cfgMgr.getSectionKeyNames()
現在のセクションのキー名からなる配列を取得します。
<boolean> cfgMgr.keyExists <key_string>
指定したキーが現在のセクション内に存在する場合は true、それ以外の場合は false を返します。
<boolean> cfgMgr.deleteKey <key_string>
指定したキーを削除します。
この関数は、常に true を返します。
<boolean> cfgMgr.putString <key_string> <string>
指定した文字列値を指定したキーに書き込みます。最初のパラメータはキー名、2 番目のパラメータは値です。
この関数は、常に true を返します。
<boolean> cfgMgr.putFloat <key_string> <float>
指定した浮動小数値を指定したキーに書き込みます。
この関数は、常に true を返します。
<boolean> cfgMgr.putInt <key_string> <int> useULong:<false>
指定した整数値を指定したキーに書き込みます。オプションの useULong
パラメータは内部でのみ使用されます。
この関数は、常に true を返します。
<boolean> cfgMgr.putFloatArray <key_string> <float array>
浮動小数点からなる指定の配列を指定したキーに書き込みます。
この関数は、常に true を返します。
<boolean> cfgMgr.putIntArray <key_string> <int array> useULong:<false>
整数からなる指定の配列を指定したキーに書き込みます。オプションの useULong
パラメータは内部でのみ使用されます。
この関数は、常に true を返します。
[<string>|undefined] cfgMgr.getString <key_string>
指定したキーが存在する場合は、このキーの値を文字列として返します。指定したキーが存在しない場合は、undefined として返します。
[<float>|undefined] cfgMgr.getFloat <key_string>
指定したキーが存在する場合は、このキーの値を浮動小数点として返します。指定したキーが存在しない場合は、undefined として返します。キーに配列が含まれている場合は、最初の値を浮動小数点に強制的に置き換えてから返します。キーにキャラクタ データが含まれている場合は、0.0 の値が返されます。
[<int>|undefined] cfgMgr.getInt <key_string> useULong:<false>
指定したキーが存在する場合は、このキーの値を整数として返します。指定したキーが存在しない場合は、undefined として返します。キーに浮動小数値が含まれている場合は、その値を強制的に整数に置き換えてから返します。キーにキャラクタ データが含まれている場合は、0 の値が返されます。キーに配列が含まれている場合は、最初の値を整数に強制的に置き換えてから返します。
[<float array>|undefined] cfgMgr.getFloatArray <key_string>
指定したキーが存在する場合は、このキーの浮動小数値からなる配列を返します。指定したキーが存在しない場合は、undefined として返します。
浮動小数値からなる配列以外を含むキーに対しては、この関数を呼び出さないでください。
[<int array>|undefined] cfgMgr.getIntArray <key_string> useULong:<false>
指定したキーが存在する場合は、このキーの整数からなる配列を返します。指定したキーが存在しない場合は、undefined として返します。
例
-- get ini file path: cfgMgr.getIniFile() --> "C:\[path_to_ini_file]\3dsMax.ini" -- get all the sections: cfgMgr.getAllSectionNames() -- create a new section for the demo: cfgMgr.setSection "CFGMGR TEST" -- confirm this is the active section: cfgMgr.getSectionName() --> "CFGMGR TEST" cfgMgr.sectionExists "CFGMGR TEST" --> false -- returns false until the section contains keys cfgMgr.putString "MyStringKey" "Hello this is a string" cfgMgr.putFloat "MyFloatKey" 3.41 cfgMgr.putInt "MyIntKey" 42 cfgMgr.putFloatArray "MyFloatArrayKey" #(2.2,3.3,4.4) cfgMgr.putIntArray "MyIntArrayKey" #(7,6,5,4,3) /* At this point the config file contains: [CFGMGR TEST] MyStringKey=Hello this is a string MyFloatKey=3.410000 MyIntKey=42 MyFloatArrayKey=2.200000 3.300000 4.400000 MyIntArrayKey=7 6 5 4 3 */ -- you typically do not want to do these things, but they work: cfgMgr.getFloat "MyIntKey" --> 42.0 cfgMgr.getInt "MyIntArrayKey" --> 7 cfgMgr.getString "MyFloatKey" --> "3.410000" -- does not work, don't do it: -- cfgMgr.getFloatArray "MyStringKey" -- nor this: -- cfgMgr.getIntArray "MyFloatArrayKey" -- but this is ok: cfgMgr.getFloatArray "MyIntArrayKey" --> #(7.0, 6.0, 5.0, 4.0, 3.0) -- cleanup, section/key names are not case-sensitve: cfgMgr.deleteSection "Cfgmgr Test"