feat: add key/val pair getting

This commit is contained in:
jonathan santis
2025-05-13 12:57:12 +02:00
parent f4d2c3f101
commit 3afd472bbd
3 changed files with 93 additions and 10 deletions

View File

@@ -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;
}