Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

ConfigFile

Hereda: RefCounted < Object

Clase de ayuda para manejar los archivos de tipo INI.

Descripción

Esta clase auxiliar puede utilizarse para almacenar valores Variant en el sistema de archivos usando un formato estilo INI. Los valores almacenados se identifican por una sección y una clave:

[section]
some_key=42
string_example="Hello World3D!"
a_vector=Vector3(1, 0, 2)

Los datos almacenados pueden guardarse o analizarse desde un archivo, aunque los objetos ConfigFile también pueden usarse directamente sin acceder al sistema de archivos.

El siguiente ejemplo muestra cómo crear un ConfigFile simple y guardarlo en el disco:

# Create new ConfigFile object.
var config = ConfigFile.new()

# Store some values.
config.set_value("Player1", "player_name", "Steve")
config.set_value("Player1", "best_score", 10)
config.set_value("Player2", "player_name", "V3geta")
config.set_value("Player2", "best_score", 9001)

# Save it to a file (overwrite if already exists).
config.save("user://scores.cfg")

Este ejemplo muestra cómo podría cargarse el archivo anterior:

var score_data = {}
var config = ConfigFile.new()

# Load data from a file.
var err = config.load("user://scores.cfg")

# If the file didn't load, ignore it.
if err != OK:
    return

# Iterate over all sections.
for player in config.get_sections():
    # Fetch the data for each section.
    var player_name = config.get_value(player, "player_name")
    var player_score = config.get_value(player, "best_score")
    score_data[player_name] = player_score

Cualquier operación que modifique el ConfigFile, como set_value(), clear() o erase_section(), solo cambia lo que se carga en la memoria. Si deseas escribir el cambio en un archivo, debes guardar los cambios con save(), save_encrypted() o save_encrypted_pass().

Ten en cuenta que los nombres de las secciones y propiedades no pueden contener espacios. Cualquier cosa después de un espacio será ignorada al guardar y al cargar.

Los ConfigFiles también pueden contener líneas de comentario escritas manualmente que comienzan con un punto y coma (;). Esas líneas se ignorarán al analizar el archivo. Ten en cuenta que los comentarios se perderán al guardar el ConfigFile. Esto aún puede ser útil para archivos de configuración de servidores dedicados, que típicamente nunca se sobrescriben sin una acción explícita del usuario.

Nota: La extensión de archivo dada a un ConfigFile no tiene ningún impacto en su formato o comportamiento. Por convención, aquí se usa la extensión .cfg, pero cualquier otra extensión como .ini también es válida. Dado que ni .cfg ni .ini están estandarizados, el formato de ConfigFile de Godot puede diferir de los archivos escritos por otros programas.

Métodos

void

clear()

String

encode_to_text() const

void

erase_section(section: String)

void

erase_section_key(section: String, key: String)

PackedStringArray

get_section_keys(section: String) const

PackedStringArray

get_sections() const

Variant

get_value(section: String, key: String, default: Variant = null) const

bool

has_section(section: String) const

bool

has_section_key(section: String, key: String) const

Error

load(path: String)

Error

load_encrypted(path: String, key: PackedByteArray)

Error

load_encrypted_pass(path: String, password: String)

Error

parse(data: String)

Error

save(path: String)

Error

save_encrypted(path: String, key: PackedByteArray)

Error

save_encrypted_pass(path: String, password: String)

void

set_value(section: String, key: String, value: Variant)


Descripciones de Métodos

void clear() 🔗

Elimina todo el contenido de la configuración.


String encode_to_text() const 🔗

Obtener la versión de texto de este archivo de configuración (el mismo texto que se escribiría en un archivo).


void erase_section(section: String) 🔗

Borra la sección especificada junto con todos los pares clave-valor que hay dentro. Provoca un error si la sección no existe.


void erase_section_key(section: String, key: String) 🔗

Borra la clave especificada en una sección. Provoca un error si la sección o la clave no existen.


PackedStringArray get_section_keys(section: String) const 🔗

Devuelve un array de todos los identificadores clave definidos en la sección especificada. Levanta un error y devuelve un array vacío si la sección no existe.


PackedStringArray get_sections() const 🔗

Devuelve un array de todos los identificadores de sección definidos.


Variant get_value(section: String, key: String, default: Variant = null) const 🔗

Devuelve el valor actual para la sección y la clave especificadas. Si la sección o la clave no existen, el método devuelve el valor default. Si default no se especifica o se establece en null, también se produce un error.


bool has_section(section: String) const 🔗

Devuelve true si existe la sección especificada.


bool has_section_key(section: String, key: String) const 🔗

Devuelve true si existe el par de claves de lasección especificada.


Error load(path: String) 🔗

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 @GlobalScope.OK on success, or one of the other Error values if the operation failed.


Error load_encrypted(path: String, key: PackedByteArray) 🔗

Carga el archivo de configuración cifrado especificado como parámetro, utilizando la key proporcionada para descifrarlo. El contenido del archivo se analiza y se carga en el objeto ConfigFile sobre el cual se llamó al método.

Devuelve @GlobalScope.OK si tiene éxito, o uno de los otros valores de Error si la operación falla.


Error load_encrypted_pass(path: String, password: String) 🔗

Carga el archivo de configuración cifrado especificado como parámetro, utilizando la password proporcionada para descifrarlo. El contenido del archivo se analiza y se carga en el objeto ConfigFile sobre el cual se llamó al método.

Devuelve @GlobalScope.OK si tiene éxito, o uno de los otros valores de Error si la operación falla.


Error parse(data: String) 🔗

Analiza la cadena de texto pasada como si fuera el contenido de un archivo de configuración. La cadena se analiza y se carga en el objeto ConfigFile sobre el cual se llamó al método.

Devuelve @GlobalScope.OK si tiene éxito, o uno de los otros valores de Error si la operación falla.


Error save(path: String) 🔗

Guarda el contenido del objeto ConfigFile en el archivo especificado como parámetro. El archivo de salida utiliza una estructura de estilo INI.

Devuelve @GlobalScope.OK si tiene éxito, o uno de los otros valores de Error si la operación falla.


Error save_encrypted(path: String, key: PackedByteArray) 🔗

Guarda el contenido del objeto ConfigFile en el archivo cifrado con AES-256 especificado como parámetro, utilizando la key proporcionada para cifrarlo. El archivo de salida utiliza una estructura de estilo INI.

Devuelve @GlobalScope.OK si tiene éxito, o uno de los otros valores de Error si la operación falla.


Error save_encrypted_pass(path: String, password: String) 🔗

Guarda el contenido del objeto ConfigFile en el archivo cifrado con AES-256 especificado como parámetro, utilizando la password proporcionada para cifrarlo. El archivo de salida utiliza una estructura de estilo INI.

Devuelve @GlobalScope.OK si tiene éxito, o uno de los otros valores de Error si la operación falla.


void set_value(section: String, key: String, value: Variant) 🔗

Asigna un valor a la clave especificada de la sección especificada. Si la sección o la clave no existen, se crean. Al pasar un valor null se borra la clave especificada si existe, y se borra la sección si termina vacía una vez que se ha eliminado la clave.