Avatar billede nr-one Nybegynder
30. december 2004 - 00:47 Der er 3 kommentarer og
1 løsning

RegExp loop hjælp

Hejsa..
Jeg har et script som replacer noget mellem 2 tags, men har det problem med at det er forskellige størrelser billeder som skal "erstattes" mellem de tags, og vil ikke have et fx 150x150 billede til at have sat en fast bredde på 300...
Her er mit script:

set regcon = new RegExp
regcon.pattern = "\[img\](.*?)\[\/img\]"
regcon.ignoreCase = true
regcon.Global = true

if Jpeg.Width < 300 then

tekst = regcon.replace(tekst, "<img src=""$1"" onclick=""popup(''$1'',''Billedevisning'');""><br><font size=""2"" color=""#C0C0C0"">Klik for at forstørre billedet!</font>")

else

tekst = regcon.replace(tekst, "<img width=""300"" src=""$1"" onclick=""popup(''$1'',''Billedevisning'',''150'',''150'');""><br>Klik for at forstørre billedet!")


som i kan se, eller gætte, virker det ikke, da den kun checker det sidste billede som bliver replaced.. Har hørt at det burde kunne laves med et loop?

Håber i forstår

/Bio
Avatar billede nr-one Nybegynder
30. december 2004 - 00:56 #1
eksembel:
billede.jpg <- Dette billede er 150x150
billede2.jpg <- Dette billede er 600x600

Når jeg så skal replace, skal linket gerne se sådan ud:
<img src="billede.jpg" onclick="popup('billede.jpg','Billedevisning','150','150');""><br>Klik for at forstørre billedet!");">

<img width="300" src="billede2.jpg" onclick="popup('billede2.jpg','Billedevisning','150','150');""><br>Klik for at forstørre billedet!");">


Som i kan se, har billede.jpg ikke en width="300" sat ind, men det har billede2.jpg fordi at det er OVER 300 pixels bredt...
Avatar billede yellow Nybegynder
30. december 2004 - 09:20 #2
Du checker på Jpeg.Width...hvor bliver den sat, og hvad er det?
Hvad står der mere præcist i "tekst" variablen?

Kan du evt. vise lidt mere af koden, så vi kan se hvor disse variabler bliver tildelt værdier?
Avatar billede nr-one Nybegynder
30. december 2004 - 14:12 #3
Jpeg.Width er Persits.Jpeg komponentet som jeg bruger (eller vil bruge) til at checke for bredden... Her er koden:

set regcon = new RegExp
regcon.pattern = "\[img\](.*?)\[\/img\]"
regcon.ignoreCase = true
regcon.Global = true

Dim MyArray
MyArray = Split(tekst, "/", -1, 1)
' MyArray(5) indeholder mappenavnet
' MyArray(6) indeholder filnavnet

Path = Server.Mappath("pic\artikel\" & MyArray(5) & "\" & MyArray(6))

' Create instance of AspJpeg
Set Jpeg = Server.CreateObject("Persits.Jpeg")
' Compute path to source image

' Open source image
Jpeg.Open Path
           
if Jpeg.Width < 300 then

tekst = regcon.replace(tekst, "<img src=""$1"" onclick=""popup(''$1'',''Billedevisning'');""><br><font size=""2"" color=""#C0C0C0"">Klik for at forstørre billedet!</font>")

else

tekst = regcon.replace(tekst, "<img width=""300"" src=""$1"" onclick=""popup(''$1'',''Billedevisning'',''150'',''150'');""><br>Klik for at forstørre billedet!")

end if

Set Jpeg = Nothing
Avatar billede nr-one Nybegynder
22. januar 2005 - 12:11 #4
....
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester