The Keyfile module


The keyfile module provides a minimal Lua wrapper around the GLib library's  GKeyFile  object, for reading and writing of key-value file data, somewhat similar to MS-Windows *.INI files.

This file format is used by Geany for various configuration and project files. Note that this module does not provide any functions for reading or writing disk files, it simply receives or returns its file data as a single continuous string. If you need to read or write a disk file, you can use Lua's built-in io module.

The functions are listed below...
Optional parameters are noted in [ square ] brackets.

For get/set style functions, calling the function with the optional parameter assigns a new value, calling the function without the optional parameter returns the current value.

Note that you can also use these functions in object-oriented style:
For instance,   keyfile.value(kf,"foo","bar") 
can also be written as   kf:value("foo","bar")



function keyfile.new ()

Creates a new, empty keyfile object.



function keyfile.data ( kf [, text] )   -- get/set

Returns or assigns the full text of the keyfile.



function keyfile.groups ( kf )

Returns an iterator to list the groups within the keyfile.



function keyfile.keys ( kf, group )

Returns an iterator to list the keys within the specified group.



function keyfile.value ( kf, group, key [, value] )   -- get/set

Returns or assigns the value of the specified key.



function keyfile.comment ( kf, group, key [, comment] )   -- get/set

Returns or assigns the comment for the specified key.
If key is nil, it gets/sets the group comment.
If group is nil, it gets/sets the comment for the file.



function keyfile.has ( kf, group [, key] )

Returns true if the specified group (and optionally the key) already exists.



function keyfile.remove ( kf, group [, key] )

Deletes the key, if specified, else it deletes the entire group.





© 2007-2008 Jeff Pohlmeyer