webForumDet fria alternativet

hur fixa denna strString-problematik?

12 svar · 1 250 visningar · startad av magnusfeldth

magnusfeldthMedlem sedan jan. 20034 480 inlägg
#1

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, "&", "&amp;")
	strString = Replace(strString, "<", "&lt;")
	strString = Replace(strString, ">", "&gt;")
	strString = Replace(strString, """", "&quot;")

	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
voigtann1Medlem sedan juni 20019 519 inlägg
#2

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]
magnusfeldthMedlem sedan jan. 20034 480 inlägg
#3

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?

voigtann1Medlem sedan juni 20019 519 inlägg
#4

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å

magnusfeldthMedlem sedan jan. 20034 480 inlägg
#5

Hur skulle jag skriva då menar du voigtann1?

voigtann1Medlem sedan juni 20019 519 inlägg
#6

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?

magnusfeldthMedlem sedan jan. 20034 480 inlägg
#7

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

voigtann1Medlem sedan juni 20019 519 inlägg
#8

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>")
magnusfeldthMedlem sedan jan. 20034 480 inlägg
#9

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>")
voigtann1Medlem sedan juni 20019 519 inlägg
#10

Förmodligen, vet inte vad din funktion Reggex gör

magnusfeldthMedlem sedan jan. 20034 480 inlägg
#11

se koden längst upp -

Reggex = .Replace(strString, strReplace)

vågar jag prova koden i vasst läge?

voigtann1Medlem sedan juni 20019 519 inlägg
#12

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.

magnusfeldthMedlem sedan jan. 20034 480 inlägg
#13

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!

132 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)