Hoi mensen!
Ik ben vandaag nog even met mijn ubb parser zitten klooien en ben nu bezig met de code tag.
Hierin wil ik html een kleurtje geven, net als in dreamweaver.
Dat lukt allemaal redelijk.
Met regular expressions krijg je de tags allemaal netjes in kleur.
Nu zit ik met een probleem:
Ik wil binnen een tag dingen tussen quotes ook een andere (blauwe) kleur geven.
Ik ben bezig geweest om het met een regular expression te doen maar dat wilde niet lukken aangezien hij dan dit doet:
<table "width=100" collspan="0" cellpadding="0">
(of iets dergelijks)
Daarna heb ik het met een do loop geprobeerd maar dit leek mij redelijk sloom te worden:
strReplace is dus alles binnen de code tag.
Kan iemand mij vertellen wat de beste manier is om dit probleem aan te pakken en me er een klein beetje mee op weg helpen...
Alvast bedankt
Ik ben vandaag nog even met mijn ubb parser zitten klooien en ben nu bezig met de code tag.
Hierin wil ik html een kleurtje geven, net als in dreamweaver.
Dat lukt allemaal redelijk.
Met regular expressions krijg je de tags allemaal netjes in kleur.
Nu zit ik met een probleem:
Ik wil binnen een tag dingen tussen quotes ook een andere (blauwe) kleur geven.
Ik ben bezig geweest om het met een regular expression te doen maar dat wilde niet lukken aangezien hij dan dit doet:
<table "width=100" collspan="0" cellpadding="0">
code:
1
2
| RegExpr.Pattern = "<(".*?")>"
strReplace = RegExpr.Replace(strReplace, "<font color=""#0000FF""><$1></font>") |
(of iets dergelijks)
Daarna heb ik het met een do loop geprobeerd maar dit leek mij redelijk sloom te worden:
code:
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
| Do WHILE InStr(1, strReplace, """) > 0
lngStartPos = InStr(lngEndPos, strReplace, "<", 0)
lngEndPos = InStr(lngstartPos, strReplace, ">", 0) +4
strTag = mid(strReplace, lngStartPos , lngEndPos - lngStartPos)
do until InStr(1, strTag, """) = 0
'bepaal positie eerste "
leftfromquot = instr(strTag, """)
'pak alles links van de eerste quot
strstack = strstack & left(strTag, leftfromquot -1)
'vul de stack bij afhankelijk van de eerste of sluitende quote
if quotcnt = 0 then
strstack = strstack & "<Font color=""#0000FF"">"""
quotcnt = 1
else
strstack = strstack & """</font>"
quotcnt = 0
end if
'haal spul net in de stach gezet uit de string!
strTag = right(strTag, len(strtag) - leftfromquot - 5)
loop
strReplace = left(strReplace, lngStartPos -1) & strstack & right(strReplace, len(strReplace) - instr(leftfromquot, strReplace, ">",0)+1)
loop |
strReplace is dus alles binnen de code tag.
Kan iemand mij vertellen wat de beste manier is om dit probleem aan te pakken en me er een klein beetje mee op weg helpen...
Alvast bedankt
[ Voor 10% gewijzigd door Mischa_NL op 07-09-2004 18:53 ]