Create token from string.
{
long lenTagBeg = ::strlen(tagBeg);
long lenTagEnd = ::strlen(tagEnd);
long lenValBeg = ::strlen(valBeg);
long lenValEnd = ::strlen(valEnd);
long lenDelim = ::strlen(delim);
long lenEq = ::strlen(eq);
while(::strncmp(
s.c_str()+
start,delim,lenDelim)==0) start += lenDelim;
long posTag = (lenTagBeg>0) ?
s.find(tagBeg, start) + lenTagBeg :
start;
long posDelim =
s.find(delim,posTag) > 0 ?
s.find(delim,posTag) : slen;
long posEq =
s.find(eq, posTag) > 0 ?
s.find(eq, posTag) : posDelim-posTag;
long lenTag = (lenTagEnd>0) ?
s.find(tagEnd, posTag)-posTag : (posEq>0) ? (posEq>posTag) ? posEq-posTag : posDelim-posTag : posDelim;
posEq =
s.find(eq, posTag+lenTag+lenTagEnd)+lenEq;
long posVal = (lenValBeg>0) ?
s.find(valBeg, posEq)+lenValBeg : posEq;
posDelim = (lenDelim>0) ?
s.find(delim, posVal+lenValBeg) : slen;
long lenVal = (lenValEnd>0) ?
s.find(valEnd, posVal)-posVal : ((posDelim>=0) ? posDelim : slen)-posVal;
if ( start >= 0 && posTag >= 0 ) {
m_tag =
s.substr(posTag, lenTag);
}
if ( posVal >= 0 && lenVal >= 0 ) {
}
while(::strncmp(
s.c_str()+start+
m_length,delim,lenDelim)==0) m_length += lenDelim;
}