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
Eredita: RefCounted < Object
Classe di supporto per gestire i file in stile INI.
Descrizione
Questa classe di supporto può essere utilizzata per memorizzare i valori Variant sul file system attraverso la formattazione in stile INI. I valori memorizzati sono identificati da una sezione e da una chiave:
[section]
some_key=42
string_example="Hello World3D!"
a_vector=Vector3(1, 0, 2)
I dati memorizzati possono essere salvati o analizzati da un file, sebbene gli oggetti ConfigFile possano anche essere utilizzati direttamente senza accedere al file system.
L'esempio seguente mostra come creare un semplice ConfigFile e salvarlo su disco:
# Crea un nuovo oggetto ConfigFile.
var config = ConfigFile.new()
# Memorizza alcuni valori.
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)
# Salvalo in un file (sovrascrivilo se esiste già).
config.save("user://scores.cfg")
// Crea un nuovo oggetto ConfigFile.
var config = new ConfigFile();
// Memorizza alcuni valori.
config.SetValue("Player1", "player_name", "Steve");
config.SetValue("Player1", "best_score", 10);
config.SetValue("Player2", "player_name", "V3geta");
config.SetValue("Player2", "best_score", 9001);
// Salvalo in un file (sovrascrivilo se esiste già).
config.Save("user://scores.cfg");
Questo esempio mostra come caricare il file sopra:
var score_data = {}
var config = ConfigFile.new()
# Carica i dati da un file.
var err = config.load("user://scores.cfg")
# Se il file non è stato caricato, ignoralo.
if err != OK:
return
# Itera su tutte le sezioni.
for player in config.get_sections():
# Recupera i dati per ogni sezione.
var player_name = config.get_value(player, "player_name")
var player_score = config.get_value(player, "best_score")
score_data[player_name] = player_score
var score_data = new Godot.Collections.Dictionary();
var config = new ConfigFile();
// Carica i dati da un file.
Error err = config.Load("user://scores.cfg");
// Se il file non è stato caricato, ignoralo.
if (err != Error.Ok)
{
return;
}
// Itera su tutte le sezioni.
foreach (String player in config.GetSections())
{
// Recupera i dati per ogni sezione.
var player_name = (String)config.GetValue(player, "player_name");
var player_score = (int)config.GetValue(player, "best_score");
score_data[player_name] = player_score;
}
Qualsiasi operazione che modifichi il ConfigFile come set_value(), clear() o erase_section(), modifica solo ciò che è caricato in memoria. Se è necessario applicare le modifiche in un file, bisogna salvare le modifiche con save(), save_encrypted() o save_encrypted_pass().
Tieni presente che i nomi di sezione e proprietà non possono contenere spazi. Tutto ciò che segue uno spazio sarà ignorato durante il salvataggio e il caricamento.
I ConfigFile possono anche contenere righe di commento scritte manualmente che iniziano con un punto e virgola (;). Tali righe verranno ignorate durante l'analisi del file. Nota che i commenti saranno persi durante il salvataggio del ConfigFile. Questo può essere utile per i file di configurazione del server dedicato, che in genere non vengono mai sovrascritti senza un'azione esplicita dell'utente.
Nota: L'estensione del file assegnata a un ConfigFile non ha alcun impatto sulla sua formattazione o sul suo comportamento. Per convenzione, qui viene utilizzata l'estensione .cfg, ma è valida anche qualsiasi altra estensione come .ini. Poiché né .cfg né .ini sono standardizzati, la formattazione del ConfigFile di Godot potrebbe essere diversa dai file scritti da altri programmi.
Metodi
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 |
Descrizioni dei metodi
void clear() 🔗
Rimuove tutto il contenuto della configurazione.
String encode_to_text() const 🔗
Ottiene la versione del testo di questo file di configurazione (lo stesso testo che sarebbe scritto in un file).
void erase_section(section: String) 🔗
Elimina la sezione specificata insieme a tutte le coppie di chiave-valore al suo interno. Genera un errore se la sezione non esiste.
void erase_section_key(section: String, key: String) 🔗
Elimina la chiave specificata in una sezione. Genera un errore se la sezione o la chiave non esistono.
PackedStringArray get_section_keys(section: String) const 🔗
Restituisce un array di tutti gli identificatori di chiave definiti nella sezione specificata. Genera un errore e restituisce un array vuoto se la sezione non esiste.
PackedStringArray get_sections() const 🔗
Restituisce un array di tutti gli identificatori di sezione definiti.
Variant get_value(section: String, key: String, default: Variant = null) const 🔗
Restituisce il valore attuale per la sezione e la chiave specificate. Se la sezione o la chiave non esistono, il metodo restituisce il valore di riserva default. Se default non è specificato o è impostato su null, viene generato anche un errore.
bool has_section(section: String) const 🔗
Restituisce true se la sezione specificata esiste.
bool has_section_key(section: String, key: String) const 🔗
Restituisce true se la coppia di sezione-chiave specificata esiste.
Carica il file di configurazione specificato come parametro. Il contenuto del file è analizzato e caricato nell'oggetto ConfigFile su cui è stato chiamato il metodo.
Restituisce @GlobalScope.OK in caso di successo, o uno degli altri valori di Error se l'operazione non è riuscita.
Error load_encrypted(path: String, key: PackedByteArray) 🔗
Carica il file di configurazione crittografato specificato come parametro, utilizzando la chiave key fornita per decrittografarlo. Il contenuto del file viene è e caricato nell'oggetto ConfigFile su cui è stato chiamato il metodo.
Restituisce @GlobalScope.OK in caso di successo, o uno degli altri valori di Error se l'operazione non è riuscita.
Error load_encrypted_pass(path: String, password: String) 🔗
Carica il file di configurazione crittografato specificato come parametro, utilizzando la password fornita per decrittografarlo. Il contenuto del file viene è e caricato nell'oggetto ConfigFile su cui è stato chiamato il metodo.
Restituisce @GlobalScope.OK in caso di successo, o uno degli altri valori di Error se l'operazione non è riuscita.
Analizza la stringa passata come contenuto di un file di configurazione. La stringa è analizzata e caricata nell'oggetto ConfigFile su cui è stato chiamato il metodo.
Restituisce @GlobalScope.OK in caso di successo, o uno degli altri valori di Error se l'operazione non è riuscita.
Salva il contenuto dell'oggetto ConfigFile nel file specificato come parametro. Il file in uscita utilizza una struttura in stile INI.
Restituisce @GlobalScope.OK in caso di successo, o uno degli altri valori di Error se l'operazione non è riuscita.
Error save_encrypted(path: String, key: PackedByteArray) 🔗
Salva il contenuto dell'oggetto ConfigFile nel file crittografato in AES-256 specificato come parametro, utilizzando la chiave key fornita per crittografarlo. Il file in uscita utilizza una struttura in stile INI.
Restituisce @GlobalScope.OK in caso di successo, o uno degli altri valori di Error se l'operazione non è riuscita.
Error save_encrypted_pass(path: String, password: String) 🔗
Salva il contenuto dell'oggetto ConfigFile nel file crittografato in AES-256 specificato come parametro, utilizzando la password fornita per crittografarlo. Il file in uscita utilizza una struttura in stile INI.
Restituisce @GlobalScope.OK in caso di successo, o uno degli altri valori di Error se l'operazione non è riuscita.
void set_value(section: String, key: String, value: Variant) 🔗
Assegna un valore alla chiave specificata della sezione specificata. Se la sezione o la chiave non esistono, sono create. Passando un valore null elimina la chiave specificata se esiste, e elimina la sezione se risulta vuota una volta rimossa la chiave.