2017-09-13 04:42:36 +08:00
<?xml version="1.0" encoding="UTF-8" ?>
2019-04-01 18:33:56 +08:00
<class name= "ConfigFile" inherits= "Reference" category= "Core" version= "3.2" >
2017-09-13 04:42:36 +08:00
<brief_description >
Helper class to handle INI-style files.
</brief_description>
<description >
2018-02-22 00:30:55 +08:00
This helper class can be used to store [Variant] values on the filesystem using INI-style formatting. The stored values are identified by a section and a key:
2017-10-14 04:52:12 +08:00
[codeblock]
[section]
some_key=42
string_example="Hello World!"
a_vector=Vector3( 1, 0, 2 )
[/codeblock]
The stored data can be saved to or parsed from a file, though ConfigFile objects can also be used directly without accessing the filesystem.
The following example shows how to parse an INI-style file from the system, read its contents and store new values in it:
2017-09-13 04:42:36 +08:00
[codeblock]
var config = ConfigFile.new()
var err = config.load("user://settings.cfg")
2019-06-22 07:04:47 +08:00
if err == OK: # If not, something went wrong with the file loading
2017-09-13 04:42:36 +08:00
# Look for the display/width pair, and default to 1024 if missing
2018-09-16 03:06:32 +08:00
var screen_width = config.get_value("display", "width", 1024)
2017-10-14 04:52:12 +08:00
# Store a variable if and only if it hasn't been defined yet
2017-09-13 04:42:36 +08:00
if not config.has_section_key("audio", "mute"):
config.set_value("audio", "mute", false)
# Save the changes by overwriting the previous file
config.save("user://settings.cfg")
[/codeblock]
2018-11-18 21:10:20 +08:00
Keep in mind that section and property names can't contain spaces. Anything after a space will be ignored on save and on load.
2017-09-13 04:42:36 +08:00
</description>
<tutorials >
</tutorials>
<methods >
<method name= "erase_section" >
<return type= "void" >
</return>
<argument index= "0" name= "section" type= "String" >
</argument>
<description >
2017-10-14 04:52:12 +08:00
Deletes the specified section along with all the key-value pairs inside.
2017-09-13 04:42:36 +08:00
</description>
</method>
2019-10-11 14:45:03 +08:00
<method name= "erase_section_key" >
<return type= "void" >
</return>
<argument index= "0" name= "section" type= "String" >
</argument>
<argument index= "1" name= "key" type= "String" >
</argument>
<description >
</description>
</method>
2017-09-13 04:42:36 +08:00
<method name= "get_section_keys" qualifiers= "const" >
<return type= "PoolStringArray" >
</return>
<argument index= "0" name= "section" type= "String" >
</argument>
<description >
2017-10-14 04:52:12 +08:00
Returns an array of all defined key identifiers in the specified section.
2017-09-13 04:42:36 +08:00
</description>
</method>
<method name= "get_sections" qualifiers= "const" >
<return type= "PoolStringArray" >
</return>
<description >
2017-10-14 04:52:12 +08:00
Returns an array of all defined section identifiers.
2017-09-13 04:42:36 +08:00
</description>
</method>
<method name= "get_value" qualifiers= "const" >
<return type= "Variant" >
</return>
<argument index= "0" name= "section" type= "String" >
</argument>
<argument index= "1" name= "key" type= "String" >
</argument>
<argument index= "2" name= "default" type= "Variant" default= "null" >
</argument>
<description >
2017-10-14 04:52:12 +08:00
Returns the current value for the specified section and key. If the section and/or the key do not exist, the method returns the value of the optional [code]default[/code] argument, or [code]null[/code] if it is omitted.
2017-09-13 04:42:36 +08:00
</description>
</method>
<method name= "has_section" qualifiers= "const" >
<return type= "bool" >
</return>
<argument index= "0" name= "section" type= "String" >
</argument>
<description >
2017-10-14 04:52:12 +08:00
Returns [code]true[/code] if the specified section exists.
2017-09-13 04:42:36 +08:00
</description>
</method>
<method name= "has_section_key" qualifiers= "const" >
<return type= "bool" >
</return>
<argument index= "0" name= "section" type= "String" >
</argument>
<argument index= "1" name= "key" type= "String" >
</argument>
<description >
2017-10-14 04:52:12 +08:00
Returns [code]true[/code] if the specified section-key pair exists.
2017-09-13 04:42:36 +08:00
</description>
</method>
<method name= "load" >
<return type= "int" enum= "Error" >
</return>
<argument index= "0" name= "path" type= "String" >
</argument>
<description >
2019-06-27 18:34:26 +08:00
Loads the config file specified as a parameter. The file's contents are parsed and loaded in the ConfigFile object which the method was called on. Returns one of the [constant OK], [constant FAILED] or [code]ERR_*[/code] constants listed in [@GlobalScope]. If the load was successful, the return value is [constant OK].
2017-09-13 04:42:36 +08:00
</description>
</method>
2019-06-29 18:24:18 +08:00
<method name= "load_encrypted" >
<return type= "int" enum= "Error" >
</return>
<argument index= "0" name= "path" type= "String" >
</argument>
<argument index= "1" name= "key" type= "PoolByteArray" >
</argument>
<description >
</description>
</method>
<method name= "load_encrypted_pass" >
<return type= "int" enum= "Error" >
</return>
<argument index= "0" name= "path" type= "String" >
</argument>
<argument index= "1" name= "pass" type= "String" >
</argument>
<description >
</description>
</method>
2017-09-13 04:42:36 +08:00
<method name= "save" >
<return type= "int" enum= "Error" >
</return>
<argument index= "0" name= "path" type= "String" >
</argument>
<description >
2019-06-27 18:34:26 +08:00
Saves the contents of the ConfigFile object to the file specified as a parameter. The output file uses an INI-style structure. Returns one of the [constant OK], [constant FAILED] or [code]ERR_*[/code] constants listed in [@GlobalScope]. If the load was successful, the return value is [constant OK].
2017-09-13 04:42:36 +08:00
</description>
</method>
2019-06-29 18:24:18 +08:00
<method name= "save_encrypted" >
<return type= "int" enum= "Error" >
</return>
<argument index= "0" name= "path" type= "String" >
</argument>
<argument index= "1" name= "key" type= "PoolByteArray" >
</argument>
<description >
</description>
</method>
<method name= "save_encrypted_pass" >
<return type= "int" enum= "Error" >
</return>
<argument index= "0" name= "path" type= "String" >
</argument>
<argument index= "1" name= "pass" type= "String" >
</argument>
<description >
</description>
</method>
2017-09-13 04:42:36 +08:00
<method name= "set_value" >
<return type= "void" >
</return>
<argument index= "0" name= "section" type= "String" >
</argument>
<argument index= "1" name= "key" type= "String" >
</argument>
<argument index= "2" name= "value" type= "Variant" >
</argument>
<description >
2018-07-01 21:55:53 +08:00
Assigns a value to the specified key of the specified section. If the section and/or the key do not exist, they are created. Passing a [code]null[/code] value deletes the specified key if it exists, and deletes the section if it ends up empty once the key has been removed.
2017-09-13 04:42:36 +08:00
</description>
</method>
</methods>
<constants >
</constants>
</class>