![]() ![]() ![]() ![]() Next: Table Iterators Up: Key/Value Tables Previous: Character Strings Contents Convenience RoutinesThere are also convenience routines for the common case of setting values in a table based on a string. For example, the following code sets up exactly the same table as the example in Section C2.3:
#include <util_Table.h> /* create a table and set some values in it */ int handle = Util_TableCreate(UTIL_TABLE_FLAGS_DEFAULT); if (handle < 0) CCTK_WARN(CCTK_WARN_ABORT, "couldn't create table!"); /* try to set some table entries */ if (Util_TableSetFromString(handle, "two=2 pi=3.14") != 2) CCTK_WARN(CCTK_WARN_ABORT, "couldn't set values in table!");
There is also an even higher-level convenience function
For example, the following code sets up a table (with the case insensitive flag set) with four entries: an integer number (two), a real number (pi), a string (buffer), and an integer array with three elements (array):
#include <util_Table.h> int handle = Util_TableCreateFromString(" two = 2 " " pi = 3.14 " " buffer = 'Hello World' " " array = { 1 2 3 }"); if (handle < 0) CCTK_WARN(CCTK_WARN_ABORT, "couldn't create table from string!");
Note that this code passes a single string to
Values for numbers are converted into integers (CCTK_INT) if possible (no decimal point appears in the value), otherwise into reals (CCTK_REAL). Strings must be enclosed in either single or double quotes. String values in single quotes are interpreted literally, strings in double quotes may contain character escape codes which then will be interpreted as in C. Arrays must be enclosed in curly braces, array elements must be single numbers of the same type (either all integer or all real).
![]() ![]() ![]() ![]() Next: Table Iterators Up: Key/Value Tables Previous: Character Strings Contents |