000
24.05.2003, 18:21 Uhr
FloSoft
Medialer Over-Flow (Administrator)
|
Hallo, ich versuche für ein Programm von mir QuellCode farbig als Html zu exportieren.
Die Befehle sind unsortiert in einem String mit Kommas getrennt:
C++: |
CString strBefehleFarbe1 = "VERSION,SRC,ACT,EQUIP,ITEMDEF"; CString strBefehleFarbe2 = "ON,ITEM";
|
das färben funktioniert schon, nur:
wenn darin z.b
VERSION=123
vorkommt, färbt er mir
VERSI mit der ersten Farbe, ON mit der 2ten.
Wie könnte ich das bei diesem Färbealgo ändern, damit er nur noch das erste mal den string färbt?
C++: |
CString CProgrammDoc::Export2Html(void) { CRichEditCtrl *Ctrl = &GetView()->GetRichEditCtrl();
CString strLine, strHtml, strKeywords[3], strReplace; int iPrev = 0, iFind = -1;
strKeywords[0] = m_SyntaxColorizer.GetKeywordList(2) + ","; // gibt die Keywörter mit kommas getrenn zurück strKeywords[1] = m_SyntaxColorizer.GetKeywordList(1) + ","; strKeywords[2] = m_SyntaxColorizer.GetKeywordList(0) + ",";
for(int x = 0; x < Ctrl->GetLineCount(); x++) { Ctrl->GetLine(x,strLine.GetBuffer(4096),4096); strLine.ReleaseBuffer(); strLine = HtmlEntities(strLine); // wandelt \n usw in breaks um
iPrev = 0; iFind = strKeywords[0].Find(","); while(iFind != -1) { strReplace.Format("<font color=\"#990000\">%s</font>",strKeywords[0].Mid(iPrev,iFind-iPrev)); strLine.Replace(strKeywords[0].Mid(iPrev,iFind-iPrev),strReplace); iPrev = iFind + 1; iFind = strKeywords[0].Find(",",iFind+1); }
iPrev = 0; iFind = strKeywords[1].Find(","); while(iFind != -1) { strReplace.Format("<font color=\"#990000\">%s</font>",strKeywords[1].Mid(iPrev,iFind-iPrev)); strLine.Replace(strKeywords[1].Mid(iPrev,iFind-iPrev),strReplace); iPrev = iFind + 1; iFind = strKeywords[1].Find(",",iFind+1); }
iPrev = 0; iFind = strKeywords[2].Find(","); while(iFind != -1) { strReplace.Format("<font color=\"#000099\">%s</font>",strKeywords[2].Mid(iPrev,iFind-iPrev)); strLine.Replace(strKeywords[2].Mid(iPrev,iFind-iPrev),strReplace); iPrev = iFind+1; iFind = strKeywords[2].Find(",",iFind+1); } strHtml += strLine; } return strHtml; }
|
-- class God : public ChuckNorris { }; |