1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
/**********************************************************************************
* .
* totally untested
*
* see iniElement instead
**********************************************************************************/
#include "ini.h"
int iniPropertyValue( char *pszString, char *pszProperty, char *pszValue, char cEqual, char cPropertySep )
{
char szBuffer[INI_MAX_LINE+1];
char szEqual[2];
char szPropertySep[2];
char *pProperty;
char *pValue;
char *pValueLastChar;
szEqual[0] = cEqual;
szEqual[1] = '\0';
szPropertySep[0] = cPropertySep;
szPropertySep[1] = '\0';
strcpy( pszValue, "" );
strncpy( szBuffer, pszString, INI_MAX_LINE );
/* find pszProperty */
while ( 1 )
{
pProperty = (char *)strtok( szBuffer, (const char *)szPropertySep );
if ( pProperty == NULL )
break;
else
{
/* extract pszValue */
if ( strncmp( pProperty, pszProperty, strlen(pszProperty) ) == 0 )
{
pValue = (char *)strtok( szBuffer, (const char *)szEqual );
if ( pValue )
{
/* truncate any other data */
pValueLastChar = (char *)strchr( pValue, szPropertySep[ 0 ] );
if ( pValueLastChar )
pValueLastChar[0] = '\0';
strncpy( pszValue, pValue, INI_MAX_PROPERTY_VALUE );
iniAllTrim( pszValue );
}
break;
}
}
}
return INI_SUCCESS;
}
|