webForumDet fria alternativet

hur fixa denna strString-problematik?

ASP

12 svar · 1 252 visningar · startad av magnusfeldth

Medlem sedan jan. 20034 480 inlägg
Frågan#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
Medlem 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]
Medlem 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?

Medlem 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å

Medlem sedan jan. 20034 480 inlägg
#5

Hur skulle jag skriva då menar du voigtann1?

Medlem 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?

Medlem 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

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

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

Medlem 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?

Medlem 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.

Medlem 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!

259 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)