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 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]
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.
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.
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","")
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 Hmm.. ok, detta då:
[red]strOvrigt = RS_prod("Övrigt")
Set regExp = New regexp
regExp.Pattern = "(.*) \<!--#(.*)\--> (.*)"
strOvrigt = regExp.Replace(strOvrigt, "$2")
Response.Write strOvrigt[/red]
Det fungerar, men omvänt :p
PalleMedlem sedan apr. 20003 174 inlägg
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
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 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..
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 Aha, ok.
Plocka bort mellanslagen i ditt pattern, like this:
[red]regExp.Pattern = "(.*)\<!--#(.*)\-->(.*)"[/red]
Nu ser det ut såhär:Finsk text här Svensk text här
PalleMedlem sedan apr. 20003 174 inlägg 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-->