class_configfile.rst 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. :github_url: hide
  2. .. Generated automatically by doc/tools/makerst.py in Godot's source tree.
  3. .. DO NOT EDIT THIS FILE, but the ConfigFile.xml source instead.
  4. .. The source is found in doc/classes or modules/<name>/doc_classes.
  5. .. _class_ConfigFile:
  6. ConfigFile
  7. ==========
  8. **Inherits:** :ref:`Reference<class_Reference>` **<** :ref:`Object<class_Object>`
  9. **Category:** Core
  10. Brief Description
  11. -----------------
  12. Helper class to handle INI-style files.
  13. Methods
  14. -------
  15. +-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  16. | void | :ref:`erase_section<class_ConfigFile_method_erase_section>` **(** :ref:`String<class_String>` section **)** |
  17. +-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  18. | void | :ref:`erase_section_key<class_ConfigFile_method_erase_section_key>` **(** :ref:`String<class_String>` section, :ref:`String<class_String>` key **)** |
  19. +-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  20. | :ref:`PoolStringArray<class_PoolStringArray>` | :ref:`get_section_keys<class_ConfigFile_method_get_section_keys>` **(** :ref:`String<class_String>` section **)** const |
  21. +-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  22. | :ref:`PoolStringArray<class_PoolStringArray>` | :ref:`get_sections<class_ConfigFile_method_get_sections>` **(** **)** const |
  23. +-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  24. | :ref:`Variant<class_Variant>` | :ref:`get_value<class_ConfigFile_method_get_value>` **(** :ref:`String<class_String>` section, :ref:`String<class_String>` key, :ref:`Variant<class_Variant>` default=null **)** const |
  25. +-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  26. | :ref:`bool<class_bool>` | :ref:`has_section<class_ConfigFile_method_has_section>` **(** :ref:`String<class_String>` section **)** const |
  27. +-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  28. | :ref:`bool<class_bool>` | :ref:`has_section_key<class_ConfigFile_method_has_section_key>` **(** :ref:`String<class_String>` section, :ref:`String<class_String>` key **)** const |
  29. +-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  30. | :ref:`Error<enum_@GlobalScope_Error>` | :ref:`load<class_ConfigFile_method_load>` **(** :ref:`String<class_String>` path **)** |
  31. +-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  32. | :ref:`Error<enum_@GlobalScope_Error>` | :ref:`load_encrypted<class_ConfigFile_method_load_encrypted>` **(** :ref:`String<class_String>` path, :ref:`PoolByteArray<class_PoolByteArray>` key **)** |
  33. +-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  34. | :ref:`Error<enum_@GlobalScope_Error>` | :ref:`load_encrypted_pass<class_ConfigFile_method_load_encrypted_pass>` **(** :ref:`String<class_String>` path, :ref:`String<class_String>` pass **)** |
  35. +-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  36. | :ref:`Error<enum_@GlobalScope_Error>` | :ref:`save<class_ConfigFile_method_save>` **(** :ref:`String<class_String>` path **)** |
  37. +-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  38. | :ref:`Error<enum_@GlobalScope_Error>` | :ref:`save_encrypted<class_ConfigFile_method_save_encrypted>` **(** :ref:`String<class_String>` path, :ref:`PoolByteArray<class_PoolByteArray>` key **)** |
  39. +-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  40. | :ref:`Error<enum_@GlobalScope_Error>` | :ref:`save_encrypted_pass<class_ConfigFile_method_save_encrypted_pass>` **(** :ref:`String<class_String>` path, :ref:`String<class_String>` pass **)** |
  41. +-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  42. | void | :ref:`set_value<class_ConfigFile_method_set_value>` **(** :ref:`String<class_String>` section, :ref:`String<class_String>` key, :ref:`Variant<class_Variant>` value **)** |
  43. +-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  44. Description
  45. -----------
  46. This helper class can be used to store :ref:`Variant<class_Variant>` values on the filesystem using INI-style formatting. The stored values are identified by a section and a key:
  47. ::
  48. [section]
  49. some_key=42
  50. string_example="Hello World!"
  51. a_vector=Vector3( 1, 0, 2 )
  52. The stored data can be saved to or parsed from a file, though ConfigFile objects can also be used directly without accessing the filesystem.
  53. The following example shows how to parse an INI-style file from the system, read its contents and store new values in it:
  54. ::
  55. var config = ConfigFile.new()
  56. var err = config.load("user://settings.cfg")
  57. if err == OK: # If not, something went wrong with the file loading
  58. # Look for the display/width pair, and default to 1024 if missing
  59. var screen_width = config.get_value("display", "width", 1024)
  60. # Store a variable if and only if it hasn't been defined yet
  61. if not config.has_section_key("audio", "mute"):
  62. config.set_value("audio", "mute", false)
  63. # Save the changes by overwriting the previous file
  64. config.save("user://settings.cfg")
  65. Keep in mind that section and property names can't contain spaces. Anything after a space will be ignored on save and on load.
  66. Method Descriptions
  67. -------------------
  68. .. _class_ConfigFile_method_erase_section:
  69. - void **erase_section** **(** :ref:`String<class_String>` section **)**
  70. Deletes the specified section along with all the key-value pairs inside.
  71. .. _class_ConfigFile_method_erase_section_key:
  72. - void **erase_section_key** **(** :ref:`String<class_String>` section, :ref:`String<class_String>` key **)**
  73. .. _class_ConfigFile_method_get_section_keys:
  74. - :ref:`PoolStringArray<class_PoolStringArray>` **get_section_keys** **(** :ref:`String<class_String>` section **)** const
  75. Returns an array of all defined key identifiers in the specified section.
  76. .. _class_ConfigFile_method_get_sections:
  77. - :ref:`PoolStringArray<class_PoolStringArray>` **get_sections** **(** **)** const
  78. Returns an array of all defined section identifiers.
  79. .. _class_ConfigFile_method_get_value:
  80. - :ref:`Variant<class_Variant>` **get_value** **(** :ref:`String<class_String>` section, :ref:`String<class_String>` key, :ref:`Variant<class_Variant>` default=null **)** const
  81. 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 ``default`` argument, or ``null`` if it is omitted.
  82. .. _class_ConfigFile_method_has_section:
  83. - :ref:`bool<class_bool>` **has_section** **(** :ref:`String<class_String>` section **)** const
  84. Returns ``true`` if the specified section exists.
  85. .. _class_ConfigFile_method_has_section_key:
  86. - :ref:`bool<class_bool>` **has_section_key** **(** :ref:`String<class_String>` section, :ref:`String<class_String>` key **)** const
  87. Returns ``true`` if the specified section-key pair exists.
  88. .. _class_ConfigFile_method_load:
  89. - :ref:`Error<enum_@GlobalScope_Error>` **load** **(** :ref:`String<class_String>` path **)**
  90. 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 :ref:`@GlobalScope.OK<class_@GlobalScope_constant_OK>`, :ref:`@GlobalScope.FAILED<class_@GlobalScope_constant_FAILED>` or ``ERR_*`` constants listed in :ref:`@GlobalScope<class_@GlobalScope>`. If the load was successful, the return value is :ref:`@GlobalScope.OK<class_@GlobalScope_constant_OK>`.
  91. .. _class_ConfigFile_method_load_encrypted:
  92. - :ref:`Error<enum_@GlobalScope_Error>` **load_encrypted** **(** :ref:`String<class_String>` path, :ref:`PoolByteArray<class_PoolByteArray>` key **)**
  93. .. _class_ConfigFile_method_load_encrypted_pass:
  94. - :ref:`Error<enum_@GlobalScope_Error>` **load_encrypted_pass** **(** :ref:`String<class_String>` path, :ref:`String<class_String>` pass **)**
  95. .. _class_ConfigFile_method_save:
  96. - :ref:`Error<enum_@GlobalScope_Error>` **save** **(** :ref:`String<class_String>` path **)**
  97. 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 :ref:`@GlobalScope.OK<class_@GlobalScope_constant_OK>`, :ref:`@GlobalScope.FAILED<class_@GlobalScope_constant_FAILED>` or ``ERR_*`` constants listed in :ref:`@GlobalScope<class_@GlobalScope>`. If the load was successful, the return value is :ref:`@GlobalScope.OK<class_@GlobalScope_constant_OK>`.
  98. .. _class_ConfigFile_method_save_encrypted:
  99. - :ref:`Error<enum_@GlobalScope_Error>` **save_encrypted** **(** :ref:`String<class_String>` path, :ref:`PoolByteArray<class_PoolByteArray>` key **)**
  100. .. _class_ConfigFile_method_save_encrypted_pass:
  101. - :ref:`Error<enum_@GlobalScope_Error>` **save_encrypted_pass** **(** :ref:`String<class_String>` path, :ref:`String<class_String>` pass **)**
  102. .. _class_ConfigFile_method_set_value:
  103. - void **set_value** **(** :ref:`String<class_String>` section, :ref:`String<class_String>` key, :ref:`Variant<class_Variant>` value **)**
  104. 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 ``null`` value deletes the specified key if it exists, and deletes the section if it ends up empty once the key has been removed.