Key-value file parser

Key-value file parser — Анализ .ini-подобных конфигурационных файлов

Краткое описание

#include <glib.h> GKeyFile; #define G_KEY_FILE_ERROR enum GKeyFileError; enum GKeyFileFlags; GKeyFile* g_key_file_new (void); void g_key_file_free (GKeyFile *key_file); void g_key_file_set_list_separator (GKeyFile *key_file, gchar separator); gboolean g_key_file_load_from_file (GKeyFile *key_file, const gchar *file, GKeyFileFlags flags, GError **error); gboolean g_key_file_load_from_data (GKeyFile *key_file, const gchar *data, gsize length, GKeyFileFlags flags, GError **error); gboolean g_key_file_load_from_data_dirs (GKeyFile *key_file, const gchar *file, gchar **full_path, GKeyFileFlags flags, GError **error); gchar* g_key_file_to_data (GKeyFile *key_file, gsize *length, GError **error); gchar* g_key_file_get_start_group (GKeyFile *key_file); gchar** g_key_file_get_groups (GKeyFile *key_file, gsize *length); gchar** g_key_file_get_keys (GKeyFile *key_file, const gchar *group_name, gsize *length, GError **error); gboolean g_key_file_has_group (GKeyFile *key_file, const gchar *group_name); gboolean g_key_file_has_key (GKeyFile *key_file, const gchar *group_name, const gchar *key, GError **error); gchar* g_key_file_get_value (GKeyFile *key_file, const gchar *group_name, const gchar *key, GError **error); gchar* g_key_file_get_string (GKeyFile *key_file, const gchar *group_name, const gchar *key, GError **error); gchar* g_key_file_get_locale_string (GKeyFile *key_file, const gchar *group_name, const gchar *key, const gchar *locale, GError **error); gboolean g_key_file_get_boolean (GKeyFile *key_file, const gchar *group_name, const gchar *key, GError **error); gint g_key_file_get_integer (GKeyFile *key_file, const gchar *group_name, const gchar *key, GError **error); gdouble g_key_file_get_double (GKeyFile *key_file, const gchar *group_name, const gchar *key, GError **error); gchar** g_key_file_get_string_list (GKeyFile *key_file, const gchar *group_name, const gchar *key, gsize *length, GError **error); gchar** g_key_file_get_locale_string_list (GKeyFile *key_file, const gchar *group_name, const gchar *key, const gchar *locale, gsize *length, GError **error); gboolean* g_key_file_get_boolean_list (GKeyFile *key_file, const gchar *group_name, const gchar *key, gsize *length, GError **error); gint* g_key_file_get_integer_list (GKeyFile *key_file, const gchar *group_name, const gchar *key, gsize *length, GError **error); gdouble* g_key_file_get_double_list (GKeyFile *key_file, const gchar *group_name, const gchar *key, gsize *length, GError **error); gchar* g_key_file_get_comment (GKeyFile *key_file, const gchar *group_name, const gchar *key, GError **error); void g_key_file_set_value (GKeyFile *key_file, const gchar *group_name, const gchar *key, const gchar *value); void g_key_file_set_string (GKeyFile *key_file, const gchar *group_name, const gchar *key, const gchar *string); void g_key_file_set_locale_string (GKeyFile *key_file, const gchar *group_name, const gchar *key, const gchar *locale, const gchar *string); void g_key_file_set_boolean (GKeyFile *key_file, const gchar *group_name, const gchar *key, gboolean value); void g_key_file_set_integer (GKeyFile *key_file, const gchar *group_name, const gchar *key, gint value); void g_key_file_set_double (GKeyFile *key_file, const gchar *group_name, const gchar *key, gdouble value); void g_key_file_set_string_list (GKeyFile *key_file, const gchar *group_name, const gchar *key); void g_key_file_set_locale_string_list (GKeyFile *key_file, const gchar *group_name, const gchar *key, const gchar *locale); void g_key_file_set_boolean_list (GKeyFile *key_file, const gchar *group_name, const gchar *key, gboolean list[], gsize length); void g_key_file_set_integer_list (GKeyFile *key_file, const gchar *group_name, const gchar *key, gint list[], gsize length); void g_key_file_set_double_list (GKeyFile *key_file, const gchar *group_name, const gchar *key, gdouble list[], gsize length); void g_key_file_set_comment (GKeyFile *key_file, const gchar *group_name, const gchar *key, const gchar *comment, GError **error); void g_key_file_remove_group (GKeyFile *key_file, const gchar *group_name, GError **error); void g_key_file_remove_key (GKeyFile *key_file, const gchar *group_name, const gchar *key, GError **error); void g_key_file_remove_comment (GKeyFile *key_file, const gchar *group_name, const gchar *key, GError **error);

Описание

GKeyFile позволяет вам анализировать, редактировать или создавать файлы содержащие группы пар ключ-значение, которые мы называем key files за неимением лучшего названия. Несколько спецификаций freedesktop.org используют ключевые фйлы, например Desktop Entry Specification и Icon Theme Specification.

Синтаксис ключевых файлов детально описан в Desktop Entry Specification, вот короткое описание: Ключевые файлы содержат группы пар ключ-значение, сопровождаемые коментариями.

# это простой пример # здесь мог бы быть комментарий для первой группы [Первая группа] Name=Key File Example\tthis value shows\nescaping # Локализованные строки хранятся в нескольких парах ключ-значение Welcome=Hello Welcome[de]=Hallo Welcome[fr]=Bonjour Welcome[it]=Ciao [Другая группа] Numbers=2;20;-200;0 Booleans=true;false;true;true

Строки начинающиеся со знака '#' и пустые строки рассматриваются как комментарии.

Группы начинаются заглавными строками содержащими имя группы заключённое в '[' и ']', а заканчиваются началом следующей группы или концом файла. Каждая пара ключ-значение должна находится в группе.

Пары ключевых значений в основном имеют форму key=value, за исключением локализованных строк, которые имеют форму key[locale]=value. Пробелы после или до знака '=' игнорируются. Символ новый строки, табуляции, перевод каретки или обратный слэш обозначаются как \n, \t, \r, и \\, соответственно. Для сохранения начальных и завершающих пробелов, их можно обозначить как \s.

Ключи файла могут хранить строки (возможно с локализованными вариантами), целочисленные, логические значения и их списки. Списки разделяются символом разделителя, обычно ';' или ','. Для использования символа разделителя списка в значениях списка, его нужно обозначить предустановленным обратным слэшем.

Этот синтаксис подобен .ini файлам обычно встречающимся в Windows, но есть некоторые важные различия:

  • .ini файлы используют символ ';' для начала комментариев, ключевые файлы используют символ '#'.

  • Ключевые файлы допускают только комментарии перед первой группой.

  • Ключевые файлы всегда в кодировке UTF-8.

  • Имена Ключей и Групп чувствительны к регистру, например группа с именем [GROUP] отличается от группы [group].

Детали

GKeyFile

typedef struct _GKeyFile GKeyFile;

Структура GKeyFile содержит только закрытые поля и не должна использоваться непосредственно.


G_KEY_FILE_ERROR

#define G_KEY_FILE_ERROR g_key_file_error_quark()

Домен ошибки для анализатора ключевых файлов. Ошибки в этом домене из перечисления GKeyFileError. Смотрите GError для информации о доменах ошибки.


enum GKeyFileError

typedef enum { G_KEY_FILE_ERROR_UNKNOWN_ENCODING, G_KEY_FILE_ERROR_PARSE, G_KEY_FILE_ERROR_NOT_FOUND, G_KEY_FILE_ERROR_KEY_NOT_FOUND, G_KEY_FILE_ERROR_GROUP_NOT_FOUND, G_KEY_FILE_ERROR_INVALID_VALUE } GKeyFileError;

Коды ошибок возвращаемые анализатором ключевых файлов.

G_KEY_FILE_ERROR_UNKNOWN_ENCODING анализируемый текст был в неизвестной кодировке
G_KEY_FILE_ERROR_PARSE документ был плохо сформирован
G_KEY_FILE_ERROR_NOT_FOUND файл не найден
G_KEY_FILE_ERROR_KEY_NOT_FOUND требуемый ключ не найден
G_KEY_FILE_ERROR_GROUP_NOT_FOUND требуемая группа не найдена
G_KEY_FILE_ERROR_INVALID_VALUE значение не может быть проанализировано

enum GKeyFileFlags

typedef enum { G_KEY_FILE_NONE = 0, G_KEY_FILE_KEEP_COMMENTS = 1 << 0, G_KEY_FILE_KEEP_TRANSLATIONS = 1 << 1 } GKeyFileFlags;

Флаги влияющие на анализ.

G_KEY_FILE_NONE Нет флагов, поведение по умолчанию
G_KEY_FILE_KEEP_COMMENTS Используйте этот флаг если вы планируете записать (возможно изменённое) содержимое ключевого файла обратно в файл; иначе все комментарии будут потеряны после записи ключевого файла обратно.
G_KEY_FILE_KEEP_TRANSLATIONS Используйте этот флаг если вы планируете записать (возможно изменённое) содержимое ключевого файла в файл; иначе будет записан только перевод для текущего языка.

g_key_file_new ()

GKeyFile* g_key_file_new (void);

Создаёт новый пустой объект GKeyFile. Используйте g_key_file_load_from_file(), g_key_file_load_from_data() или g_key_file_load_from_data_dirs() для чтения существующего ключевого файла.

Возвращает : пустой GKeyFile.

Начиная с версии 2.6


g_key_file_free ()

void g_key_file_free (GKeyFile *key_file);

Освобождает GKeyFile.

key_file : GKeyFile

Начиная с версии 2.6


g_key_file_set_list_separator ()

void g_key_file_set_list_separator (GKeyFile *key_file, gchar separator);

Устанавливает символ используемый для разделения значений в списках. Обычно ';' или ',' используются в качестве разделителя. По умолчанию разделителем списков является ';'.

key_file : GKeyFile
separator : разделитель

Начиная с версии 2.6


g_key_file_load_from_file ()

gboolean g_key_file_load_from_file (GKeyFile *key_file, const gchar *file, GKeyFileFlags flags, GError **error);

Загружает ключевой файл в пустую структуру GKeyFile. Если файл не загружен, то устанавливается error в GFileError или GKeyFileError.

key_file : пустая структура GKeyFile
file : путь имени файла для загрузки, в кодировке имён файлов GLib
flags : флаги из GKeyFileFlags
error : расположение для возвращаемой GError, или NULL
Возвращает : TRUE если ключевой файл был загружен, FALSE если нет.

Начиная с версии 2.6


g_key_file_load_from_data ()

gboolean g_key_file_load_from_data (GKeyFile *key_file, const gchar *data, gsize length, GKeyFileFlags flags, GError **error);

Загружает ключевой файл из памяти в пустую структуру GKeyFile. Если объект не создан, то устанавливается error в GKeyFileError.

key_file : пустая структура GKeyFile
data : ключевой файл загружаемый из памяти.
length : длина data в байтах
flags : флаги из GKeyFileFlags
error : расположение для возвращаемой GError, или NULL
Возвращает : TRUE если ключевой файл был загружен, FALSE если нет.

Начиная с версии 2.6


g_key_file_load_from_data_dirs ()

gboolean g_key_file_load_from_data_dirs (GKeyFile *key_file, const gchar *file, gchar **full_path, GKeyFileFlags flags, GError **error);

Эта функция находит ключевой файл с именем file в путях возвращаемых из g_get_user_data_dir() и g_get_system_data_dirs(), загружает файл в key_file и возвращает полный путь файла в full_path. Если файл не загружен то устанавливается error в GFileError или GKeyFileError.

key_file : пустая структура GKeyFile
file : относительный путь к фалу для анализа
full_path : расположение для возвращаемой строки содержащей полный путь файла, или NULL
flags : флаги из GKeyFileFlags
error : расположение для возвращаемой GError, или NULL
Возвращает : TRUE если ключевой файл был загружен, FALSE если нет

Начиная с версии 2.6


g_key_file_to_data ()

gchar* g_key_file_to_data (GKeyFile *key_file, gsize *length, GError **error);

Эта функция выводит key_file как строку.

key_file : GKeyFile
length : расположение для длины возвращаемой строки, или NULL
error : расположение для возвращаемой GError, или NULL
Возвращает : вновь распределённая строка содержащая контекст GKeyFile

Начиная с версии 2.6


g_key_file_get_start_group ()

gchar* g_key_file_get_start_group (GKeyFile *key_file);

Возвращает имя начальной группы файла.

key_file : GKeyFile
Возвращает : Начальная группа ключевого файла.

Начиная с версии 2.6


g_key_file_get_groups ()

gchar** g_key_file_get_groups (GKeyFile *key_file, gsize *length);

Возвращает все группы ключевого файла загруженного из key_file. Массив возвращаемых групп будет NULL-завершённым, поэтому length опционально может быть NULL.

key_file : GKeyFile
length : расположение для количества возвращаемых групп, или NULL
Возвращает : вновь распределённый NULL-завершённый массив строк. Используйте g_strfreev() для его освобождения.

Начиная с версии 2.6


g_key_file_get_keys ()

gchar** g_key_file_get_keys (GKeyFile *key_file, const gchar *group_name, gsize *length, GError **error);

Возвращает все ключи для группы с именем group_name. Массив возвращаемых ключей будет NULL-завершённым, поэтому length опционально может быть NULL. Даже если group_name не найдена, возвращается NULL и устанавливается error в G_KEY_FILE_ERROR_GROUP_NOT_FOUND.

key_file : GKeyFile
group_name : имя группы
length : расположение для возвращаемого количества возвращённых ключей, или NULL
error : расположение для GError, или NULL
Возвращает : вновь распределённый NULL-завершённый массив строк. Используйте g_strfreev() для его освобождения.

Начиная с версии 2.6


g_key_file_has_group ()

gboolean g_key_file_has_group (GKeyFile *key_file, const gchar *group_name);

Определяет имеет ли ключевой файл группу group_name.

key_file : GKeyFile
group_name : имя группы
Возвращает : TRUE если group_name часть key_file, иначе FALSE.

Начиная с версии 2.6


g_key_file_has_key ()

gboolean g_key_file_has_key (GKeyFile *key_file, const gchar *group_name, const gchar *key, GError **error);

Определяет имеет ли ключевой файл ключ key в группе group_name.

key_file : GKeyFile
group_name : имя группы
key : имя ключа
error : расположение для возвращаемой GError
Возвращает : TRUE если key часть group_name, иначе FALSE.

Начиная с версии 2.6


g_key_file_get_value ()

gchar* g_key_file_get_value (GKeyFile *key_file, const gchar *group_name, const gchar *key, GError **error);

Возвращает значение связанное с key в group_name.

В случае когда ключ не найден, возвращает NULL и устанавливает error в G_KEY_FILE_ERROR_KEY_NOT_FOUND. В случае когда group_name не найдена, возвращает NULL и устанавливает error в G_KEY_FILE_ERROR_GROUP_NOT_FOUND.

key_file : GKeyFile
group_name : имя группы
key : ключ
error : расположение для возвращаемой GError, или NULL
Возвращает : вновь распределённая строка, или NULL если определённый ключ не найден.

Начиная с версии 2.6


g_key_file_get_string ()

gchar* g_key_file_get_string (GKeyFile *key_file, const gchar *group_name, const gchar *key, GError **error);

Возвращает значение связанное с key в group_name.

Когда ключ не найден, возвращает NULL и устанавливает error в G_KEY_FILE_ERROR_KEY_NOT_FOUND. В случае если group_name не найдена, возвращает NULL и устанавливает error в G_KEY_FILE_ERROR_GROUP_NOT_FOUND.

key_file : GKeyFile
group_name : имя группы
key : ключ
error : расположение возвращаемой GError, или NULL
Возвращает : вновь распределённая строка или NULL если определённый ключ не найден.

Начиная с версии 2.6


g_key_file_get_locale_string ()

gchar* g_key_file_get_locale_string (GKeyFile *key_file, const gchar *group_name, const gchar *key, const gchar *locale, GError **error);

Возвращает значение связанное с key в group_name переведённое в полученную locale если возможно. Если locale это NULL, то используется текущая локаль.

Если key не найден, то возвращает NULL и устанавливает error в G_KEY_FILE_ERROR_KEY_NOT_FOUND. Если значение связанное с key не может интерпретироваться или не найден подходящий перевод, то возвращается не переведённое значение.

key_file : GKeyFile
group_name : имя группы
key : ключ
locale : локаль или NULL
error : расположение для возвращаемой GError, или NULL
Возвращает : вновь распределённая строка или NULL если определённый ключ не найден.

Начиная с версии 2.6


g_key_file_get_boolean ()

gboolean g_key_file_get_boolean (GKeyFile *key_file, const gchar *group_name, const gchar *key, GError **error);

Возвращает значение связанное с key в group_name как логическое.

Если key не найден то возвращаемое значение не определено и устанавливается error в G_KEY_FILE_ERROR_KEY_NOT_FOUND. Аналогично, если значение связанное с key не интерпретируется как логическое, то возвращаемое значение также не определено и устанавливается error в G_KEY_FILE_ERROR_INVALID_VALUE.

key_file : GKeyFile
group_name : имя группы
key : ключ
error : расположение для возвращаемой GError
Возвращает : логическое значение связанное с ключом

Начиная с версии 2.6


g_key_file_get_integer ()

gint g_key_file_get_integer (GKeyFile *key_file, const gchar *group_name, const gchar *key, GError **error);

Возвращает значение связанное с key в group_name как целочисленное. Если group_name это NULL, то используется начальная группа (start_group).

Если key не найден, то возвращаемое значение не определено и устанавливается error в G_KEY_FILE_ERROR_KEY_NOT_FOUND. Аналогично, если значение связанное с key не интерпретируется как целочисленное, то возвращаемое значение также не определено и устанавливается error в G_KEY_FILE_ERROR_INVALID_VALUE.

key_file : GKeyFile
group_name : имя группы
key : ключ
error : расположение для возвращаемой GError
Возвращает : целочисленное значение связанное с ключом.

Начиная с версии 2.6


g_key_file_get_double ()

gdouble g_key_file_get_double (GKeyFile *key_file, const gchar *group_name, const gchar *key, GError **error);

Возвращает значение связанное с key в group_name как double. Если group_name это NULL, используется начальная группа (start_group).

Если key не найден, то возвращаемое значение не определено и устанавливается error в G_KEY_FILE_ERROR_KEY_NOT_FOUND. Аналогично, если значение связанное с key не интерпретируется как double, то возвращаемое значение также не определено и устанавливается error в G_KEY_FILE_ERROR_INVALID_VALUE.

key_file : GKeyFile
group_name : имя группы
key : ключ
error : расположение для возвращаемой GError
Возвращает : double значение связанное с ключом.

Начиная с версии 2.12


g_key_file_get_string_list ()

gchar** g_key_file_get_string_list (GKeyFile *key_file, const gchar *group_name, const gchar *key, gsize *length, GError **error);

Возвращает значение связанное с key в group_name.

В случае когда ключ не найден, возвращает NULL и устанавливает error в G_KEY_FILE_ERROR_KEY_NOT_FOUND. Если group_name не найдена, возвращает NULL и устанавливает error в G_KEY_FILE_ERROR_GROUP_NOT_FOUND.

key_file : GKeyFile
group_name : имя группы
key : ключ
length : расположение для количества возвращаемых строк, или NULL
error : расположение для возвращаемой GError, или NULL
Возвращает : NULL-завершённый строковый массив или NULL если определённый ключ не найден. Массив должен освобождаться с помощью g_strfreev().

Начиная с версии 2.6


g_key_file_get_locale_string_list ()

gchar** g_key_file_get_locale_string_list (GKeyFile *key_file, const gchar *group_name, const gchar *key, const gchar *locale, gsize *length, GError **error);

Возвращает значение связанное с key в group_name переводя в полученную locale если возможно. Если locale это NULL, то используется текущая локаль.

Если key не найден, то возвращает NULL и устанавливает error в G_KEY_FILE_ERROR_KEY_NOT_FOUND. Если значения связанные с key не могут интерпретироваться или не подлежат переводу, то возвращает не переведённые значения. Возвращённый массив NULL-завершённый, поэтому length может опционально быть NULL.

key_file : GKeyFile
group_name : имя группы
key : ключ
locale : локаль
length : расположение для количества возвращаемых строк или NULL
error : расположение для возвращаемой GError или NULL
Возвращает : вновь распределённый NULL-завершённый массив строк или NULL если ключ не найден. Строковый массив должен освобождаться с помощью g_strfreev().

Начиная с версии 2.6


g_key_file_get_boolean_list ()

gboolean* g_key_file_get_boolean_list (GKeyFile *key_file, const gchar *group_name, const gchar *key, gsize *length, GError **error);

Возвращает значение связанное с key в group_name как список логических. Если group_name это NULL, используется начальная группа (start_group).

Если key не найден, то возвращаемое значение не определено и устанавливается error в G_KEY_FILE_ERROR_KEY_NOT_FOUND. Аналогично, если значения связанные с key не интерпретируются как логические, то возвращаемое значение также не определено и устанавливается error в G_KEY_FILE_ERROR_INVALID_VALUE.

key_file : GKeyFile
group_name : имя группы
key : ключ
length : количество возвращаемых логических
error : расположение для возвращаемой GError
Возвращает : логические значения связанные с ключом

Начиная с версии 2.6


g_key_file_get_integer_list ()

gint* g_key_file_get_integer_list (GKeyFile *key_file, const gchar *group_name, const gchar *key, gsize *length, GError **error);

Возвращает значения связанные с key в group_name как список целочисленных.

Если key не найден, то возвращаемое значение не определено и устанавливается error в G_KEY_FILE_ERROR_KEY_NOT_FOUND. Аналогично, если значения связанные с key не интерпретируются как целочисленные, то возвращаемое значение также не определено и устанавливается error в G_KEY_FILE_ERROR_INVALID_VALUE.

key_file : GKeyFile
group_name : имя группы
key : ключ
length : количество возвращаемых целочисленных
error : расположение для возвращаемой GError
Возвращает : целочисленные значения связанные с ключом

Начиная с версии 2.6


g_key_file_get_double_list ()

gdouble* g_key_file_get_double_list (GKeyFile *key_file, const gchar *group_name, const gchar *key, gsize *length, GError **error);

Возвращает значение связанное с key в group_name как doubles. Если group_name это NULL, используется начальная группа.

Если key не найден, то возвращаемое значение не определено и устанавливается error в G_KEY_FILE_ERROR_KEY_NOT_FOUND. Аналогично, если значения связанные с key не интерпретируются как doubles, то возвращаемое значение также не определено и error устанавливается в G_KEY_FILE_ERROR_INVALID_VALUE.

key_file : GKeyFile
group_name : имя группы
key : ключ
length : количество возвращаемых doubles
error : расположение для возвращаемой GError
Возвращает : значения связанные с key как double

Начиная с версии 2.12


g_key_file_get_comment ()

gchar* g_key_file_get_comment (GKeyFile *key_file, const gchar *group_name, const gchar *key, GError **error);

Находит комментарий выше key из group_name. Если key это NULL, то comment будет прочитан сверху group_name. Если и key и group_name являются NULL, то comment будет прочитан сверху первой группы в файле.

key_file : GKeyFile
group_name : имя группы, или NULL
key : ключ
error : расположение для возвращаемой GError
Возвращает : комментарий который должен быть освобождён с помощью g_free()

Начиная с версии 2.6


g_key_file_set_value ()

void g_key_file_set_value (GKeyFile *key_file, const gchar *group_name, const gchar *key, const gchar *value);

Связывает новое значение с key в group_name. Если key не найден, то он создаётся. Если group_name не найдена, то она создаётся.

key_file : GKeyFile
group_name : имя группы
key : ключ
value : строка

Начиная с версии 2.6


g_key_file_set_string ()

void g_key_file_set_string (GKeyFile *key_file, const gchar *group_name, const gchar *key, const gchar *string);

Связывает новое строковое значение с key в group_name. Если key не найден, то он создаётся. Если group_name не найдена, то она создаётся.

key_file : GKeyFile
group_name : имя группы
key : ключ
string : строка

Начиная с версии 2.6


g_key_file_set_locale_string ()

void g_key_file_set_locale_string (GKeyFile *key_file, const gchar *group_name, const gchar *key, const gchar *locale, const gchar *string);

Связывает строковое значение с key и locale в group_name. Если перевод для key не найден, то он создаётся.

key_file : GKeyFile
group_name : имя группы
key : ключ
locale : локаль
string : строка

Начиная с версии 2.6


g_key_file_set_boolean ()

void g_key_file_set_boolean (GKeyFile *key_file, const gchar *group_name, const gchar *key, gboolean value);

Связывает новое логическое значение с key в group_name. Если key не найден, он создаётся.

key_file : GKeyFile
group_name : имя группы
key : ключ
value : TRUE или FALSE

Начиная с версии 2.6


g_key_file_set_integer ()

void g_key_file_set_integer (GKeyFile *key_file, const gchar *group_name, const gchar *key, gint value);

Связывает новое целочисленное значение с key в group_name. Если key не найден, то он создаётся.

key_file : GKeyFile
group_name : имя группы
key : ключ
value : целочисленное значение

Начиная с версии 2.6


g_key_file_set_double ()

void g_key_file_set_double (GKeyFile *key_file, const gchar *group_name, const gchar *key, gdouble value);

Связывает новое значение double с key в group_name. Если key не найден, он создаётся. Если group_name это NULL, используется начальная группа.

key_file : GKeyFile
group_name : имя группы
key : ключ
value : значение double

Начиная с версии 2.12


g_key_file_set_string_list ()

void g_key_file_set_string_list (GKeyFile *key_file, const gchar *group_name, const gchar *key);

Связывает список строковых значений с key в group_name. Если key не найден, то он создаётся. Если group_name не найдена, то она создаётся.

key_file : GKeyFile
group_name : имя группы
key : ключ

Начиная с версии 2.6


g_key_file_set_locale_string_list ()

void g_key_file_set_locale_string_list (GKeyFile *key_file, const gchar *group_name, const gchar *key, const gchar *locale);

Связывает список строковых значений с key и locale в group_name. Если перевод для key не найден, то он создаётся.

key_file : GKeyFile
group_name : имя группы
key : ключ
locale : локаль

Начиная с версии 2.6


g_key_file_set_boolean_list ()

void g_key_file_set_boolean_list (GKeyFile *key_file, const gchar *group_name, const gchar *key, gboolean list[], gsize length);

Связывает список логических значений с key в group_name. Если key не найден, то он создаётся. Если group_name это NULL, то используется начальная группа (start_group).

key_file : GKeyFile
group_name : имя группы
key : ключ
list : массив логических значений
length : длина list

Начиная с версии 2.6


g_key_file_set_integer_list ()

void g_key_file_set_integer_list (GKeyFile *key_file, const gchar *group_name, const gchar *key, gint list[], gsize length);

Связывает список целочисленных значений с key в group_name. Если key не найден, то он создаётся.

key_file : GKeyFile
group_name : имя группы
key : ключ
list : массив целочисленных значений
length : количество целочисленных значений в list

Начиная с версии 2.6


g_key_file_set_double_list ()

void g_key_file_set_double_list (GKeyFile *key_file, const gchar *group_name, const gchar *key, gdouble list[], gsize length);

Связывает список значений double с key в group_name. Если key не найден, то он создаётся. Если group_name это NULL, то используется начальная группа.

key_file : GKeyFile
group_name : имя группы
key : ключ
list : массив double значений
length : количество double значений в list

Начиная с версии 2.12


g_key_file_set_comment ()

void g_key_file_set_comment (GKeyFile *key_file, const gchar *group_name, const gchar *key, const gchar *comment, GError **error);

Размещает комментарий выше key из group_name. Если key это NULL, то comment будет записан вверху group_name. Если и key и group_name являются NULL, то comment будет записан сверху первой группы в файле.

key_file : GKeyFile
group_name : имя группы, или NULL
key : ключ
comment : комментарий
error : расположение для возвращаемой GError

Начиная с версии 2.6


g_key_file_remove_group ()

void g_key_file_remove_group (GKeyFile *key_file, const gchar *group_name, GError **error);

Удаляет определённую группу, group_name, из ключевого файла.

key_file : GKeyFile
group_name : имя группы
error : расположение для возвращаемой GError или NULL

Начиная с версии 2.6


g_key_file_remove_key ()

void g_key_file_remove_key (GKeyFile *key_file, const gchar *group_name, const gchar *key, GError **error);

Удаляет key в group_name из ключевого файла.

key_file : GKeyFile
group_name : имя группы
key : имя ключа для удаления
error : расположение для возвращаемой GError или NULL

Начиная с версии 2.6


g_key_file_remove_comment ()

void g_key_file_remove_comment (GKeyFile *key_file, const gchar *group_name, const gchar *key, GError **error);

Удаляет комментарий выше key из group_name.

key_file : GKeyFile
group_name : имя группы, или NULL
key : ключ
error : расположение для возвращаемой GError

Начиная с версии 2.6