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
Успадковує: RefCounted < Object
Помічник класу для обробки файлів INI-style.
Опис
Цей допоміжний клас можна використовувати для зберігання значень Variant у файловій системі за допомогою форматування у стилі INI. Збережені значення ідентифікуються розділом і ключем:
[section]
some_key=42
string_example="Привіт, світ 3D!"
a_vector=Вектор3(1, 0, 2)
Збережені дані можна зберегти або проаналізувати з файлу, хоча об’єкти ConfigFile також можна використовувати безпосередньо без доступу до файлової системи.
У наступному прикладі показано, як створити простий файл ConfigFile і зберегти його на диску:
[gdscript]
# Створіть новий об'єкт ConfigFile.
var config = ConfigFile.new()
# Зберігати деякі значення.
config.set_value("Гравець1", "ім'я_гравця", "Стів")
config.set_value("Гравець1", "найкращий_результат", 10)
config.set_value("Гравець2", "ім'я_гравця", "V3geta")
config.set_value("Гравець2", "найкращий_результат", 9001)
# Збережіть його у файл (перезапишіть, якщо він уже існує).
config.save("user://scores.cfg")
[/gdscript]
[csharp]
// Створення нового об'єкта ConfigFile.
var config = new ConfigFile();
// Зберігати деякі значення.
config.SetValue("Гравець1", "ім'я_гравця", "Стів");
config.SetValue("Гравець1", "найкращий_результат", 10);
config.SetValue("Гравець2", "ім'я_гравця", "V3geta");
config.SetValue("Гравець2", "найкращий_результат", 9001);
// Збережіть його у файл (перезапишіть, якщо він уже існує).
config.Save("user://scores.cfg");
[/csharp][/codeblocks]
У цьому прикладі показано, як можна завантажити файл вище: [codeblock]
[gdscript] var score_data = {} var config = ConfigFile.new()
# Завантажити дані з файлу. var err = config.load("user://scores.cfg")
# Якщо файл не завантажився, проігноруйте його. якщо помилка != ОК:
return
# Ітерація по всіх розділах. для гравця в config.get_sections():
# Отримати дані для кожного розділу. var player_name = config.get_value(player, "player_name") var player_score = config.get_value(player, "best_score") score_data[player_name] = player_score
[/gdscript] [csharp] var score_data = new Godot.Collections.Dictionary(); var config = new ConfigFile();
// Завантажити дані з файлу. Помилка err = config.Load("user://scores.cfg");
// Якщо файл не завантажився, проігноруйте його. if (err != Error.Ok) {
return;
}
// Ітерація по всіх розділах. foreach (Програвач рядків у config.GetSections()) {
// Отримання даних для кожного розділу. var player_name = (String)config.GetValue(player, "player_name"); var player_score = (int)config.GetValue(player, "best_score"); score_data[player_name] = player_score;
} [/csharp][/codeblocks]
Будь-яка операція, яка змінює ConfigFile, наприклад [method set_value], [method clear] або [method erase_section], змінює лише те, що завантажено в пам’ять. Якщо ви хочете записати зміни у файл, ви повинні зберегти зміни за допомогою [method save], [method save_encrypted] або [method save_encrypted_pass].
Пам’ятайте, що назви розділів і властивостей не можуть містити пробіли. Усе, що стоїть після пробілу, ігноруватиметься під час збереження та завантаження.
Файли конфігурацій також можуть містити написані вручну рядки коментарів, які починаються з крапки з комою ([code];[/code]). Ці рядки будуть проігноровані під час аналізу файлу. Зауважте, що коментарі буде втрачено під час збереження файлу конфігурації. Це може бути корисним для файлів конфігурації виділеного сервера, які зазвичай ніколи не перезаписуються без явної дії користувача.
[b]Примітка:[/b] Розширення файлу, надане ConfigFile, не впливає на його форматування чи поведінку. За домовленістю тут використовується розширення [code].cfg[/code], але будь-яке інше розширення, наприклад [code].ini[/code], також є дійсним. Оскільки ані [code].cfg[/code], ані [code].ini[/code] не стандартизовані, форматування файлу конфігурації Godot може відрізнятися від файлів, написаних іншими програмами.
Методи
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 |
has_section(section: String) const |
|
has_section_key(section: String, key: String) const |
|
load(path: String) |
|
load_encrypted(path: String, key: PackedByteArray) |
|
load_encrypted_pass(path: String, password: String) |
|
parse(data: String) |
|
save(path: String) |
|
save_encrypted(path: String, key: PackedByteArray) |
|
save_encrypted_pass(path: String, password: String) |
|
void |
set_value(section: String, key: String, value: Variant) |
Описи методів
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 🔗
Повернення поточного значення для вказаного розділу та ключа. Якщо в розділі або ключі не існує, метод повертає значення default. Якщо default не вказаний або встановлений на null, також піднято помилку.
bool has_section(section: String) const 🔗
Повертає true, якщо зазначений розділ існує.
bool has_section_key(section: String, key: String) const 🔗
Повертає true, якщо вказана пара під ключ.
Завантажує файл конфігурації, зазначений як параметр. Вміст файлу знаходиться парований і завантажений в об'єкті ConfigFile.
Повертаємо вашу увагу на успіх, або один з інших значень Error, якщо операція не була виконана.
Error load_encrypted(path: String, key: PackedByteArray) 🔗
Завантажує зашифрований файл config, вказаний як параметр, за допомогою наданої key для розшифрування його. Вміст файлу знаходиться парований і завантажений в об'єкті ConfigFile.
Повертаємо вашу увагу на успіх, або один з інших значень Error, якщо операція не була виконана.
Error load_encrypted_pass(path: String, password: String) 🔗
Завантажує зашифрований файл config, вказаний як параметр, за допомогою наданої password для розшифрування його. Вміст файлу знаходиться парований і завантажений в об'єкті ConfigFile.
Повертаємо вашу увагу на успіх, або один з інших значень Error, якщо операція не була виконана.
Придбання пропущеного рядка як вміст файлу конфігурації. string is parsed і loaded в the ConfigFile об'єкт, який метод був викликаний.
Повертаємо вашу увагу на успіх, або один з інших значень Error, якщо операція не була виконана.
Заощаджує вміст об'єкта ConfigFile до файлу, зазначеного як параметр. Вихідний файл використовує структуру стилю INI.
Повертаємо вашу увагу на успіх, або один з інших значень Error, якщо операція не була виконана.
Error save_encrypted(path: String, key: PackedByteArray) 🔗
Заощаджує вміст об'єкта ConfigFile до зашифрованого файлу AES-256, зазначеного в параметрі, за допомогою наданої key, щоб зашифрувати його. Вихідний файл використовує структуру стилю INI.
Повертаємо вашу увагу на успіх, або один з інших значень Error, якщо операція не була виконана.
Error save_encrypted_pass(path: String, password: String) 🔗
Заощаджує вміст об'єкта ConfigFile до зашифрованого файлу AES-256, зазначеного в параметрі, за допомогою наданої password, щоб зашифрувати його. Вихідний файл використовує структуру стилю INI.
Повертаємо вашу увагу на успіх, або один з інших значень Error, якщо операція не була виконана.
void set_value(section: String, key: String, value: Variant) 🔗
Призначає значення до вказаного ключа вказаного розділу. Якщо не існує, то вони створюються. Передача значення null видаляє зазначений ключ, якщо він існує, і видаляє розділ, якщо він закінчується порожнім, як тільки ключ був видалений.