feat: add key/val pair getting
This commit is contained in:
52
config.c
52
config.c
@@ -60,16 +60,6 @@ int loadConfig(char *str_file, char **str_entry,char **host,int *intervall,int s
|
||||
printf("Done reading config file\n");
|
||||
return 0;
|
||||
}
|
||||
/*int parseConfig(File *file, char *str_entry)
|
||||
{
|
||||
char sub_str[256];
|
||||
if(strcmp(str_entry,"[Host]")==0)//section
|
||||
{
|
||||
fgets(sub_str,256,file);
|
||||
|
||||
//do sub parsing
|
||||
}
|
||||
}*/
|
||||
/*
|
||||
* Here we check if the given string contains a section
|
||||
* for example [SECTIONName] here delimiterLeft is [ and delimiterRight is ]
|
||||
@@ -179,3 +169,45 @@ int getStrAtPos(char *str,int fromPos,int toPos,char **name,int sizeName)
|
||||
return NO_ERROR;
|
||||
}
|
||||
|
||||
|
||||
int getNameValuePair(char *str,char leftDelimiterPos,char rightDelimiterPos,char **name,char **value,int sizeName,int sizeValue)
|
||||
{
|
||||
int state=ST_INIT;
|
||||
char *ptr_name=*name;
|
||||
char *ptr_value=*value;
|
||||
int ret=0;
|
||||
|
||||
char *ptrDelimiter=NULL;
|
||||
int posDelimiter=0;
|
||||
int posEnd=0;
|
||||
|
||||
ptrDelimiter=strchr(str,leftDelimiterPos);
|
||||
if(ptrDelimiter==NULL)
|
||||
{
|
||||
return ERROR_DELIMITER_NOT_FOUND;
|
||||
}
|
||||
posDelimiter = (ptrDelimiter - str);
|
||||
printf("LenUntilDelimiter: %d",posDelimiter);
|
||||
if((ret=getStrAtPos(str,0,posDelimiter-1,&ptr_name,MAX_LEN_SECTIONNAME)) == NO_ERROR)
|
||||
{
|
||||
printf("ptr_name:%s",ptr_name);
|
||||
}else {
|
||||
return ret;
|
||||
}
|
||||
if(rightDelimiterPos == 0)
|
||||
{
|
||||
posEnd = strlen(str);
|
||||
}else{
|
||||
posEnd = rightDelimiterPos;
|
||||
}
|
||||
|
||||
if((ret=getStrAtPos(str,posDelimiter+1,posEnd,&ptr_value,MAX_LEN_SECTIONNAME)) == NO_ERROR)
|
||||
{
|
||||
printf("ptr_name:%s\n",ptr_value);
|
||||
}else {
|
||||
return ret;
|
||||
}
|
||||
|
||||
return NO_ERROR;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user