Nu sitter jag och sliter mitt hår, jag försöker få en string-kod att fungera. Jag vill kunna lägga in lightbox-bild, alltså bild som får förstorning och att även få in en bildtext... koden nedanför använder jag för att tex få in bilder... men hur skall jag göra för att få in tre värden?? Två kan jag klura ut, men inte tre... Värde 1 jag vill få in är huvudbilden, värde 2 minibilden och värde 3 är bildtexten. Se koden jag vill skriva ut precis nedan...
<a class="lightbox" href="images/textbilder/STORBILD" rel="text" title="BILDTEXT"><img border="0" width="85" height="60" src="images/textbilder/MINIBILD"></a>
Function Reggex(strString, strPattern, strReplace)
Dim RE: Set RE = New RegExp
With RE
.Pattern = strPattern
.Global = True
Reggex = .Replace(strString, strReplace)
End With
End Function
Function bbC(strString)
strString = Replace(strString, "&", "&")
strString = Replace(strString, "<", "<")
strString = Replace(strString, ">", ">")
strString = Replace(strString, """", """)
strString = Reggex(strString, "\[url=([^\]]+)\](.*?)\[\/url\]", "<a href=""$1"" title="""">$2</a>")
strString = Reggex(strString, "\[url\](.*?)\[\/url\]", "<a href=""$1"" title="""">$1</a>")
strString = Reggex(strString, "\[img\](.*?)\[\/img\]", "<img src=""images/textbilder/$1"" alt="""" />")
strString = Reggex(strString, "\[email=(.*?)\]([^\[]*)\[\/email\]", "<a href=""mailto:$1"" title="""">$2</a>")
strString = Reggex(strString, "\[email](.*?)\[\/email\]", "<a href=""mailto:$1"" title="""">$1</a>")
osv....
strString = Replace(strString, vbcrlf, "<br />")
bbC = strString
End Function
hur vill du skriva din kod för att den skall veta att den skall ta STORBILD, BILDTEXT och MINIBILD?
[img ]minibild.jpg,storbild.jpg,text som kan se ut hur som hellst?[/img]
om jag skulle tvinga minibilden att vara en bestämd filändelse av storbild, skulle det kanske funka så här?
strString = Reggex(strString, "\[lightbox=([^\]]+)\](.*?)\[\/lightbox\]", "
<a class="lightbox" href=""images/textbilder/$1.jpg"" rel="text" title=""$2""><img border="0" src=""images/textbilder/$1_mini.jpg""></a>")
kan det funka? nån som kan komma på nåt bättre?
Du kan ha vilket filformat som du vill, så länge du har någon typ av split eller identitet på det så man kan hitta ett mönster, mitt exempel ovan var fil komma fil komma text
beroende på vad du vill ha om du vill ha det som kanske ett attribut i din [lightbox=fil1 file2=fil2 text=hej på dig] så kan man fixa det också
Hur skulle jag skriva då menar du voigtann1?
Ge exempel på hur du skulle vilja skriva för att få in koden, du kan nog få vilket format som du vill ha
kollat igenom din kod lite, [lightbox=url]text har du nu som något mönster, det ser ju klokt ut, fungera inte din kod som du skrev innan jag började skriva konstiga inlägg?
jag skulle vilja skriva den så här:
[lightbox=bild1, bild2]bildtexten[/lightbox]
så då är frågan hur själva str-koden skall se ut. det som den skall in i är ju
<a class="lightbox" href="images/textbilder/BILD1" rel="text" title="BILDTEXT"><img border="0" width="85" height="60" src="images/textbilder/BILD2"></a>
det jag inte kan komma på är hur jag skall skriva för att få in tre värden i str-koden... hm
jag gissar på att det inte behöver vara ett mellanslag mellan bild1 och bild2:
(kör CSS för border="0" width="85" height="60") på din bild:
Dim myRegExp, ResultString
Set myRegExp = New RegExp
myRegExp.IgnoreCase = True
myRegExp.MultiLine = True
myRegExp.Global = True
myRegExp.Pattern = "\[lightbox=([^,]+), ?([^\]]+)\](.*?)\[/lightbox\]"
ResultString = myRegExp.Replace(SubjectString, "<a href=""images/textbilder/$1"" title=""$3""><img src=""images/textbilder/$2"" /></a>")
Hm, man kan inte få in din kod i mitt format enligt ovan? Skulle det bli nåt så här?? Har inte testat den...
strString = Reggex(strString, "\[lightbox=([^,]+), ?([^\]]+)\](.*?)\[/lightbox\]", "<a href=""images/textbilder/$1"" title=""$3""><img src=""images/textbilder/$2"" /></a>")
Förmodligen, vet inte vad din funktion Reggex gör
se koden längst upp -
Reggex = .Replace(strString, strReplace)
vågar jag prova koden i vasst läge?
magnusfeldth skrev:
se koden längst upp -
Reggex = .Replace(strString, strReplace)
vågar jag prova koden i vasst läge?
Varför inte? du sparar inte datan, du presentera den ju bara, om den inte fungera, backa det.
Dock så säger din rad inte så mycket då det inte säger vad strString och strReplace kommer ifrån, .replace kan vara vilken klass som helst, men try it.
så här blev den fungerande slutprodukten:
strString = Reggex(strString, "\[lightbox=([^,]+), ?([^\]]+)\](.*?)\[\/lightbox\]", "<a class=""lightbox"" href=""images/textbilder/$1"" title=""$3""><img border=""0"" src=""images/textbilder/$2"" /></a>")
saknades nån liten \ i voigtann1s kod, annars perfekt. Stort tack V!