INI ファイルは、一般にユーザ インタフェース状態の設定やその他の任意の情報を格納するのに使用される純粋な ASCII テキスト ファイルです。データは、任意の数のキーとそれに対応する値を持ったカテゴリに編成されます。
MAXScript は、INI ファイルを管理するための非常にエラーに強い関数セットを提供しています。たとえば、存在しない INI ファイルに新しいカテゴリやキーを設定すると、別のファイル管理関数を呼び出さなくても、自動的に新しいファイルが生成されます。また、既存のファイルもしくは存在しないファイルから存在しないキー値を取得すると、エラーを発生させずに空の文字列を返します。
getINISetting <filename_string> <section_string> <key_string> [defaultValue:<string>]
指定されたファイルから INI の設定を読み込みます。ファイル内の <section_string>
で識別されるセクションが検索され、続いて <key_string>
で指定されるキーが検索されます。
このキーに割り当てられる値は、文字列として返されます。
指定されたファイル、セクション、あるいはキーが見つからない場合は、空の文字列 "" が返されます。
3ds Max 2022.2 Update の新機能: オプションの
defaultValue
キーワード パラメータを定義すると、指定されたファイル、セクション、またはキーが見つからない場合にこの既定値が返されます。
例:
getINISetting "c:/temp/test.ini" "Directories" "Scenes"
3ds Max 6 以降では、.ini ファイルのみが指定されている場合、このメソッドは .ini ファイル内のセクションの配列を返します。
3ds Max 6 以降では、.ini ファイルとセクションのみが指定されている場合、このメソッドはセクション内のキーの配列を返します。
3ds Max 2017 Update 1 以降では、戻り値の長さを最大 32,767 文字にできます。以前のバージョンでは、値は約 8000 文字で切り捨てられました。
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:
キーワード引数は、UTF 16 エンコーディングまたは ASCII テキストのどちらを使用して値を書き込むかをコントロールします。
既定では、オプションのキーワード引数を指定しない場合、または true に指定する場合、UTF16 エンコーディングが使用されます。
オプションのキーワードを false に指定すると、値は ASCII テキストとして書き込まれます。
3ds Max 2013 以降で利用可能な追加のメソッドは、それが供給されない場合の forceUTF16:
オプション キーワード引数の既定の振る舞いを制御します。
<boolean>setIniForceUTF16Default <boolean>
新しく起動した後のキーワード引数 forceUTF16:
の既定値は true です。
setIniForceUTF16Default false
を呼び出すと、setINISetting()
メソッドの既定のエンコーディングは ASCII に設定されます。
setIniForceUTF16Default true
を呼び出すと、setINISetting()
メソッドの既定のエンコーディングは UTF16 に設定されます。
既定の動作はセッションをまたいで引き継がれず、再起動すると forceUTF16:
の既定のエンコーディングに戻ります。
例:
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 を返します。