ConfigFile
Overview¶
Some applications need variable configurations.
For example, The configuration of account information for Twitter...
It's not good for publish if I implemented a program with a account information for Twitter, and it's not secure.
So, in this document we will show you a configuration file helper class for local file system on mbed.
You can use a variable configuration with it.
Basic concept¶
- A configuration set consist from a key and a value.
How to use it?¶
Configuration file¶
We need a configuration file.
- A comment line started by #.
- Empty lines have not meaning.
- Key=Value based configuration.
- A space character in a side of a key and a value have a meaning.
Configurtion file example
# # Configuration file for mbed. # MyKey1=This is a value for key1. MyKey2=Value 2 Message1 = This is a test message no.1 Message2 = This is a test message no.2 Message3 = This is a test message no.3
Reading¶
This example codes read a file named input.cfg on mbed local file system.
#include "mbed.h" #include "ConfigFile.h" LocalFileSystem local("local"); ConfigFile cfg; int main(void) { char *key = "MyKey"; char value[BUFSIZ]; /* * Read a configuration file from a mbed. */ if (!cfg.read("/local/input.cfg")) { error("Failure to read a configuration file.\n"); } /* * Get a configuration value. */ if (cfg.getValue(key, &value[0], sizeof(value))) { printf("'%s'='%s'\n", key, value); } }
- Ignore comments in a configuration file.
- Ignore empty lines in a configuration file.
- Keep spaces in side of keys and values.
Writing¶
This example codes write a configuration to a file.
#include "mbed.h" #include "ConfigFile.h" LocalFileSystem local("local"); ConfigFile cfg; int main(void) { /* * Set a configuration value. */ if (!cfg.setValue("MyKey", "TestValue")) { error("Failure to set a value.\n"); } /* * Write to a file. */ if (!cfg.write("/local/output.cfg")) { error("Failure to write a configuration file.\n"); } }
Library API¶
Import library
Public Member Functions |
|
ConfigFile () | |
Create a configuration file class.
|
|
~ConfigFile () | |
Destroy a configuration file class.
|
|
bool | getValue (char *key, char *value, size_t siz) |
Get a value for a key.
|
|
bool | setValue (char *key, char *value) |
Set a set of a key and value.
|
|
bool | remove (char *key) |
Remove a config.
|
|
bool | removeAll (void) |
Remove all config.
|
|
int | getCount () |
Get a number of configuration sets.
|
|
bool | getKeyAndValue (int index, char *key, size_t keybufsiz, char *value, size_t valuebufsiz) |
Get a key and a value.
|
|
bool | read (char *file) |
Read from the target file.
|
|
bool | write (char *file, char *header=NULL, FileFormat ff=UNIX) |
Write from the target file.
|
Example application¶
Import programConfigFile_TestProgram
A test program for ConfigFile library.