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.
Checking the stable version of the documentation...
ConfigFile
Hérite de : RefCounted < Object
Classe d’aide pour gérer des fichiers de style INI.
Description
Cette classe d'aide peut être utilisée pour enregistrer des valeurs de type Variant sur le système de fichier au format INI. Les valeurs enregistrées sont identifiées par une section et une clé :
[section]
une_clef=42
exemple_chaine="Bonjour le monde 3d !"
un_vecteur=Vector3(1, 0, 2)
Les données stockées peuvent être enregistrées dans un fichier ou chargées depuis un fichier, mais aussi par les objets ConfigFile qui peuvent être utilisés directement sans accéder au système de fichiers.
L'exemple suivant montre comme créer un simple ConfigFile et l'enregistrer sur le disque :
# Créer un nouvel objet ConfigFile.
var config = ConfigFile.new()
# Stocker quelques valeurs.
config.set_value("Joueur1", "nom_joueur", "Jean")
config.set_value("Joueur1", "meilleur_score", 10)
config.set_value("Joueur2", "nom_joueur", "V3geta")
config.set_value("Joueur2", "meilleur_score", 9001)
# L'enregistrer sur dans un fichier (en écrasant le fichier déjà existant s'il y en a un).
config.save("user://scores.cfg")
// Créer un nouvel objet ConfigFile.
var config = new ConfigFile();
// Stocker quelques valeurs.
config.set_value("Joueur1", "nom_joueur", "Jean")
config.set_value("Joueur1", "meilleur_score", 10)
config.set_value("Joueur2", "nom_joueur", "V3geta")
config.set_value("Joueur2", "meilleur_score", 9001)
// L'enregistrer sur dans un fichier (en écrasant le fichier déjà existant s'il y en a un).
config.Save("user://scores.cfg");
Cet exemple montre comme le fichier au-dessus peut-être chargé :
var donnees_score = {}
var config = ConfigFile.new()
# Charger les données depuis le fichier.
var err = config.load("user://scores.cfg")
# Si le fichier n'a pu être chargé, ignorer la suite.
if err != OK:
return
# Itérer sur les sections.
for joueur in config.get_sections():
# Récupérer les données de chaque section.
var nom_joueur = config.get_value(joueur, "nom_joueur")
var score_joueur = config.get_value(joueur, "meilleur_score")
donnees_score[nom_joueur] = score_joueur
var donnees_score = new Godot.Collections.Dictionary();
var config = new ConfigFile();
// Charger les données depuis le fichier.
Error err = config.Load("user://scores.cfg");
// Si le fichier n'a pu être chargé, ignorer la suite.
if (err != Error.Ok)
{
return;
}
// Itérer sur les sections.
foreach (String joueur in config.GetSections())
{
// Récupérer les données de chaque section.
var nom_joueur = (String)config.GetValue(joueur, "nom_joueur");
var score_joueur = (int)config.GetValue(joueur, "meilleur_score");
score_data[nom_joueur] = score_joueur;
}
Toutes les opérations qui modifient le ConfigFile comme set_value(), clear(), ou erase_section(), ne changent que les données en mémoire. Si vous voulez aussi modifier le fichier, vous devez sauvegarder les changements avec save(), save_encrypted(), ou save_encrypted_pass().
Notez que les noms des sections et des propriétés ne peuvent contenir des espaces. Tous les caractères après un espace seront ignorés à la sauvegarde et au chargement.
Les ConfigFiles peuvent aussi contenir des lignes de commentaire écrites manuellement qui doivent commencer par un point-virgule (;). Ces lignes sont ignorées durant le parsing d'un fichier. À noter que ces commentaires seront perdus durant l'enregistrement d'un ConfigFile. Ils peuvent toujours servir pour les fichiers de configuration sur les serveurs, qui ne sont typiquement jamais modifiés sans action explicite de l'utilisateur.
Note : L'extension du nom de fichier donné à un ConfigFile n'a aucun impact sur son format ou son comportement. Par convention, l'extension .cfg est utilisée ici, mais n'importe quelle autre extension comme .ini est aussi valide. Comme ni .cfg ni .ini ne sont standardisés, le format des ConfigFile de Godot peuvent différer de ceux écrits par d'autres programmes.
Méthodes
void |
clear() |
encode_to_text() const |
|
void |
erase_section(section: String) |
void |
erase_section_key(section: String, key: String) |
get_section_keys(section: String) const |
|
get_sections() const |
|
get_value(section: String, key: String, default: Variant = null) const |
|
has_section(section: String) const |
|
has_section_key(section: String, key: String) const |
|
load_encrypted(path: String, key: PackedByteArray) |
|
load_encrypted_pass(path: String, password: String) |
|
save_encrypted(path: String, key: PackedByteArray) |
|
save_encrypted_pass(path: String, password: String) |
|
void |
Descriptions des méthodes
void clear() 🔗
Supprime tout le contenu de la configuration.
String encode_to_text() const 🔗
Obtient la version texte de ce fichier de configuration (le même texte qui serait écrit dans un fichier).
void erase_section(section: String) 🔗
Supprime la section spécifiée ainsi que toutes ses paires valeur-clé avec. Affiche une erreur si la section n'existe pas.
void erase_section_key(section: String, key: String) 🔗
Supprime la clé spécifiée dans une section. Affiche une erreur si la section ou la clé n'existe pas.
PackedStringArray get_section_keys(section: String) const 🔗
Renvoie un tableau de tous les identifiants des clés définis dans la section spécifiée. Affiche une erreur et renvoie un tableau vide si la section n'existe pas.
PackedStringArray get_sections() const 🔗
Renvoie un tableau de tous les identifiants de sections définis.
Variant get_value(section: String, key: String, default: Variant = null) const 🔗
Renvoie l'actuelle valeur pour la section et la clé spécifiées. Si la section ou la clé n'existent pas, la méthode renvoie la valeur du paramètre de repli default. Si default n'est pas spécifié ou défini à null, une erreur est levée.
bool has_section(section: String) const 🔗
Renvoie true si la section spécifiée existe.
bool has_section_key(section: String, key: String) const 🔗
Renvoie true si la paire section et clé spécifiée existe.
Charge le fichier de configuration spécifié en paramètre. Le contenu du fichier est interprété et chargé dans l'objet ConfigFile sur lequel la méthode a été appelée.
Renvoie @GlobalScope.OK lors du succès, ou une des valeurs Error si l'opération a échoué.
Error load_encrypted(path: String, key: PackedByteArray) 🔗
Charge le fichier de configuration encrypté spécifié en paramètre, en utilisant la clé key fournie pour le décrypter. Le contenu du fichier est interprété et chargé dans l'objet ConfigFile sur lequel la méthode a été appelée.
Renvoie @GlobalScope.OK lors du succès, ou une des valeurs Error si l'opération a échoué.
Error load_encrypted_pass(path: String, password: String) 🔗
Charge le fichier de configuration crypté spécifié comme paramètre, en utilisant le mode de passe password donné pour le décrypter. Le contenu du fichier est interprété puis chargé dans l'objet ConfigFile sur lequel la méthode a été appelée.
Renvoie @GlobalScope.OK lors d'un succès, ou une des autres valeurs Error si l'opération a échoué.
Interprète la chaîne passée comme étant le contenu d'un fichier de configuration. La chaîne est interprétée puis chargée dans l'objet ConfigFile sur lequel la méthode a été appelée.
Renvoie @GlobalScope.OK lors d'un succès, ou une des autres valeurs Error si l'opération a échoué.
Enregistre le contenu de l'objet ConfigFile dans le fichier spécifié en paramètre. Le fichier de sortie utilise une structure de type INI.
Renvoie @GlobalScope.OK lors d'un succès, ou une des autres valeurs Error si l'opération a échoué.
Error save_encrypted(path: String, key: PackedByteArray) 🔗
Enregistre le contenu de l'objet ConfigFile vers le fichier chiffré AES-256 donné en paramètre, en utilisant la clé key fournie pour le crypter. Le fichier de sortie utilise une structure de type INI.
Renvoie @GlobalScope.OK lors d'un succès, ou une des autres valeurs Error si l'opération a échoué.
Error save_encrypted_pass(path: String, password: String) 🔗
Enregistre le contenu de l'objet ConfigFile vers le fichier chiffré AES-256 donné en paramètre, en utilisant le mot de passe password fourni pour le crypter. Le fichier de sortie utilise une structure de type INI.
Renvoie @GlobalScope.OK lors d'un succès, ou une des autres valeurs Error si l'opération a échoué.
void set_value(section: String, key: String, value: Variant) 🔗
Attribue une valeur à la clé spécifiée de la section spécifiée. Si la section ou la clé n'existe pas, elles sont créées. Passer une valeur null supprime la clé spécifiée si elle existe, et supprime la section si elle est vide une fois que la clé a été supprimée.