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.
