webForumDet fria alternativet

Hjälp med script

14 svar · 278 visningar · startad av His Divine Shadow

His Divine ShadowMedlem sedan sep. 20004 079 inlägg
#1

Jag har en kod som ska göra så att bara en viss del av text ur ett fält visas:

ovrigt=RS_prod("Övrigt")
Dim Pos
  Pos=Instr(5,ovrigt,"<!--#")
  ovr=mid(ovrigt,Pos+5,Len(ovrigt)-Pos+3)
  Pos=Instr(3,ovr,"-->")
  ovr=left(ovr,Pos)

Koden så visar bara texten inom <!--# och --> och gömmer också dessa tecken, men, det funkar inte riktigt, det lämmnar fortfarande alltid ett streck(ett "-") efter texten, vad gör jag fel?

PalleMedlem sedan apr. 20003 174 inlägg
#2

Nu får vi se om jag har fattat rätt.. ;)
..men borde det inte gå enklare med Reg.Exp?

ex.

[red]strOvrigt = RS_prod("Övrigt")
Set regExp = New regexp
regExp.Pattern = "\<!--#(.*)\-->" 
strOvrigt = regExp.Replace(strOvrigt, "$1")
	
Response.Write strOvrigt[/red]
m_soderlundMedlem sedan sep. 20026 425 inlägg
#3

Så här ser exempelvis en sträng ut:

ovrigt = "<!--#include file="fil.asp"-->

Jag vet inte om du använder dig av include file eller SSI, men chansar. Du använder dig av Pos flera gånger också.

Dim p, ovr
p = Instr(ovr,"-->")
ovr = Mid(ovr,6,(p-1))
Response.Write ovr

Tror det ska fungera.

/r Men Palles kod är grymmare.

His Divine ShadowMedlem sedan sep. 20004 079 inlägg
#4

Palle skrev:

Nu får vi se om jag har fattat rätt.. ;)
..men borde det inte gå enklare med Reg.Exp?

ex.

[red]strOvrigt = RS_prod("Övrigt")
Set regExp = New regexp
regExp.Pattern = "\<!--#(.*)\-->" 
strOvrigt = regExp.Replace(strOvrigt, "$1")
	
Response.Write strOvrigt[/red]

Tja jag gjorde inte koden orginellt men jag prövade din och visst tar den bort dom två sakerna, men det visar också resten av texten, bara texten innanför domdär två tecknen ska synas.

m_soderlundMedlem sedan sep. 20026 425 inlägg
#5
regExp.Pattern = "(\<!--#(.*)\-->)|("include file)"
strOvrigt = regExp.Replace(strOvrigt,"$1$2")

*hoppas koden fungerar*
Eller yrar jag i nattmössan?

Om du använder min:
Använder du dig av include file så får du köra en Replace() också.

Replace(ovr,"include file","")
His Divine ShadowMedlem sedan sep. 20004 079 inlägg
#6

Nä, jag stoppar nog in den direkt i sidan bara.

/r
Förstår mig inte på din kod

regExp.Pattern = "(\<!--#(.*)\--> )|("include file)"
Vad menas med include file här? varför behövs nått sånt?

strOvrigt = regExp.Replace(strOvrigt,"$1$2")

Var blir strOvrigt länkat till RS_prod("Övrigt")?

PalleMedlem sedan apr. 20003 174 inlägg
#7

Hmm.. ok, detta då:

[red]strOvrigt = RS_prod("Övrigt")
Set regExp = New regexp
regExp.Pattern = "(.*) \<!--#(.*)\--> (.*)" 
strOvrigt = regExp.Replace(strOvrigt, "$2")
	
Response.Write strOvrigt[/red]
His Divine ShadowMedlem sedan sep. 20004 079 inlägg
#8

Det fungerar, men omvänt :p

PalleMedlem sedan apr. 20003 174 inlägg
#9

His Divine Shadow skrev:

Det fungerar, men omvänt

I´m lost.. hehe. ;)
Jag trodde du ville ha bort all text utom det som står innanför <!--# och -->.

Hur vill du ha det? Förklara nu ordenligt så mina cola-tomma hjärna förstår. :OO :e

His Divine ShadowMedlem sedan sep. 20004 079 inlägg
#10

Det vill jag, men just nu gör scripte så att <!--# och --> försvinner plus texten innanför.

Text som är utanför syns

PalleMedlem sedan apr. 20003 174 inlägg
#11

Hmm.. har du noterat ändringen i denna rad:

[red]strOvrigt = regExp.Replace(strOvrigt, "[b]$2[/b]")[/red]

För mig fungerar det nämligen som det ska..

His Divine ShadowMedlem sedan sep. 20004 079 inlägg
#12

Yup, precis samma, så här ser ett exempel fält ut för mig:
=============
Finsk text här
<!--#Svensk text här-->
=============

Då det syns i rutan så är detta resultatet:
=============
Finsk text här
=============

Här är koden som visar texten i sin helhet:

strOvrigt = RS_prod("Övrigt")
Set regExp = New regexp
regExp.Pattern = "(.*) \<!--#(.*)\--> (.*)" 
strOvrigt = regExp.Replace(strOvrigt, "$2")
%>
<html>
	<head>
		<title></title>
	</head>
	<body>
		<font size="1" face="verdana">
			<%=strOvrigt%>
		</font>
	</body>
</html>
PalleMedlem sedan apr. 20003 174 inlägg
#13

Aha, ok.
Plocka bort mellanslagen i ditt pattern, like this:

[red]regExp.Pattern = "(.*)\<!--#(.*)\-->(.*)"[/red]
His Divine ShadowMedlem sedan sep. 20004 079 inlägg
#14

Nu ser det ut såhär:Finsk text här Svensk text här

PalleMedlem sedan apr. 20003 174 inlägg
#15

Va #*@!! ;)

Denna koden..

[red]strOvrigt = RecSet("test")
Set regExp = New regexp
regExp.Pattern = "(.*)\<!--#(.*)\-->(.*)" 
strOvrigt = regExp.Replace(strOvrigt, "$2")
	
Response.Write strOvrigt[/red]

..ger mig detta resultatet:

Palles kod skrev:

Svensk text här

Kolumnen i test-databasen, RecSet("test"), är PM och skriver jag bara ut den ser det ut så här:

Finsk text här <!--#Svensk text här-->

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