You are viewing an older revision! See the latest version
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.read("/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.
