Ben er al zeker een uur mee bezig maar kom er eigenlijk niet uit. Het is punt is dat ik een replacefunctie hebt welke er als volgt uit ziet:
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| void lplhSymbol::setVariable(std::string name, std::string value) {
std::string seq = "{" + name + "}";
std::string::size_type pos = 0;
while((pos = m_buffer.find(seq,pos)) != std::string::npos) {
m_buffer.replace(pos,seq.length(),value);
//m_buffer = m_buffer.substr(0,pos) + value + m_buffer.substr(pos + seq.length(),m_buffer.length() - pos + seq.length());
pos++;
}
std::cout << "Uit VAL ==>" << m_buffer.c_str() << "<<==\n";
} |
Regel 8 heb ik er voor de zekerheid even bijgezet maar die verschilt niet qua uitwerking in deze situatie. De waarde van
m_buffer (
std::string) is als volgt:
code:
1
| <tr><td><a href="/policy?id={policyid}">{policyname}</a></td></tr> |
Na de 'replace' ontstaat de volgende waarde:
code:
1
| <tr><td><a href="/policy?id=0">{policyname}</a></td></tr>lt.css |
Het gaat dan met name om de laatste 5 karakters (dit wisselt steeds). Dit lijkt mij een bug, wanneer de te replacen waarde kleiner is dan de originele dan kort hij de string niet in

. Of zie ik nu iets helemaal over het hoofd.