Object
|
+---DConfigReader
The DConfigReader class implements methods for parsing a config file.
#include <stdio.h>
#include "ofc/DConfig.h"
#include "ofc/DFile.h"
@interface MyHandler : Object <DConfigHandler> // MyHander implements the DConfigHander interface
{
}
- (BOOL) startConfig;
- (BOOL) endConfig;
- (BOOL) section :(const char *) name;
- (BOOL) option :(const char *) section :(const char *) name :(const char *) value;
- (BOOL) comment :(const char *) comment;
- (void) error :(int) number :(const char *) name :(int) lineNumber :(int) columnNumber;
@end
@implementation MyHandler
- (BOOL) startConfig
{
return YES; // No interrest in startConfig..
}
- (BOOL) endConfig
{
return YES; // No interest in endConfig..
}
- (BOOL) section :(const char *) name
{
return YES; // No interest in (start of) section
}
- (BOOL) option :(const char *) section :(const char *) name :(const char *) value
{
printf("Section:%s Name:%s Value:%s\n", section, name, value);
return YES;
}
- (BOOL) comment :(const char *) comment
{
return YES; // No interest in comment
}
- (void) error :(int) number :(const char *) name :(int) lineNumber :(int) columnNumber
{
printf("Error:%d in %s on line %d and column %d.\n", number, name, lineNumber, columnNumber);
}
@end
int main(int argc, char *argv[])
{
MyHandler *hdlr = [MyHandler new]; // Config handler
DConfigReader *rdr = [DConfigReader new]; // Config reader
DFile *file = [DFile new];
if ([file open :"example.ini" :"r"]) // Open the config file
{
if (![rdr parse :file :"example.ini" :hdlr]) // Parse the config file, calling the config handler methods
{
printf("File \"example.ini\" could not be parsed.\n");
}
[file close];
}
[hdlr free]; // Cleanup
[file free];
[rdr free];
return 0;
}