Avatar billede bobbedude Nybegynder
06. oktober 2006 - 12:46 Der er 7 kommentarer og
1 løsning

Replace Text med ASP kode

TPageCode = Replace(TPageCode,"+LOGINCODESTART+","<%if login = "yes" then%>")
TPageCode = Replace(TPageCode,"+LOGINCODESLUT+","<%end If%>")

Response.write TPageCode


Overstående virker ikke :) hvordan får jeg det til at virke ?
Avatar billede plx Nybegynder
06. oktober 2006 - 12:48 #1
brug %\> i stedet for %>

så brokker den sig ikke
Avatar billede bobbedude Nybegynder
06. oktober 2006 - 12:54 #2
nej det gør den ikke men jeg ville gerne have den til at execute koden og det gør den heller ikke desværrer
Avatar billede softspot Forsker
06. oktober 2006 - 12:59 #3
Jeg gætter på at du vil have indføjet koden og udført den på grundlag af en tekst som er en slags makro...?

Du kan ikke umiddelbart udskrive ASP-kode med response.write og få den udført. Du er nød til at generere noget validt VBScript-kode, som kan udføres med VBS-kommandoen Execute. Execute forstår dog ikke ASP-tags (<% og %>), så hele teksten skal være valid VBS-kode. Det betyder bla., at alt det der er HTML-kode i din tekst, skal laves om til Response.Write-kommandoer. Som du kan fornemme begynder det at blive en lidt mere besværlig proces, at omdanne din makro til udførbar kode på denne måde.

Et alternativ er at lave en separat side som du kalder med Server.Execute.

Hvad skal det bruges til? Umiddelbart ville jeg jo synes der måtte være andre måder hvorpå du kan opnå din funktionalitet...
Avatar billede bobbedude Nybegynder
06. oktober 2006 - 13:06 #4
det er en tekst editor hvor man kan sætte en tag ind + html tekst altså:

<stront>her er html</stront><br><br><u>test</u><br>+LOGINCODESTART+skjult tekst hvis man ikke er logget ind+LOGINCODESLUT+

mener du server.execute ?
Avatar billede softspot Forsker
06. oktober 2006 - 13:17 #5
Den første Execute-kommando jeg omtalte var VBScript's egen Execute-kommando. Den anden var Server.Execute, men Server.Execute er en del af ASP's framework og derfor betragter jeg det ikke som en del VBS, men bare en service der stilles til rådighed af ASP-frameworket (ligesom f.eks. Response.Write, Request.Form osv.).

Anyway! I dit tilfælde skal du have lavet den tekst om til noget VBS-kode som ser således ud:

Response.Write "<stront>her er html</stront><br><br><u>test</u><br>"
if login = "yes" then
  Response.Write "skjult tekst hvis man ikke er logget ind"
end if

Hvilket i en streng ville se således ud:
vbskode = "Response.Write ""<stront>her er html</stront><br><br><u>test</u><br>""" & vbCrLf & _
"if login = ""yes"" then" & vbCrLf & _
"  Response.Write ""skjult tekst hvis man ikke er logget ind""" & vbCrLf & _
"end if"

Husk det er vigtigt at få linieskiftene med, da VBS ikke har andre måder at skelne mellem statements på end linieskiftene.

Metoden kunne være noget i stil med dette:

START:
Udtag tekst frem til næste "<%"
Hvis første ikke-mellemrumstegn efter "<%" = "=" så
  Udskriv det efterfølgende statement med en "Response.Write"
Ellers
  Inføj linieskift og indsæt kommandoerne frem til næste "%>"
Slut hvis
Hvis slutning af tekst ikke er nået så
  Gentag fra START
Avatar billede softspot Forsker
06. oktober 2006 - 13:18 #6
Den tekst som kommer ud af ovenstående skulle så kunne udføres med Execute kommandoen:

vbsKode = omdanTilVBSkode() ' denne funktion kan det jeg beskrev ovenfor
Execute vbsKode
Avatar billede bobbedude Nybegynder
16. november 2006 - 22:42 #7
checker det lige
Avatar billede bobbedude Nybegynder
04. marts 2007 - 23:26 #8
jeg fik det aldrig til at virke, lave istedet 2 felter i databasen en man kunne se hvis man er logget ind og en hvis man ikke er.
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