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

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")

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

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.ini sono standardizzati, la formattazione del ConfigFile di Godot potrebbe essere diversa dai file scritti da altri programmi.

Metodi

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)


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.


Error load(path: String) 🔗

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.


Error parse(data: String) 🔗

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.


Error save(path: String) 🔗

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.