Avatar billede KLS Novice
11. januar 2006 - 18:22 Der er 45 kommentarer og
1 løsning

Finde bestemte tegn i en streng.

Jeg er igang med at lave en side, som læser det meste indhold fra en database (html kode m.m)

men når jeg bruger Response.write streng så skriver den jo rigtig nok alt tekst i strengen som html kode, men jeg har også nogle asp kald i den kode den læser, og disse skulle jeg gerne have eksekveret.

Jeg går udfra jeg så skal skrive linien karakter for karakter, og slette i min totale streng efter følgende, så når jeg møder <% så stopper den med at skrive som html, og går over til at læse som asp, indtil den igen møder %>. men karakterne skal stadig tælles med som en helhed, så jeg får al koden med.


Er der nogle der har forslag til hvordan jeg gør, eller hvordan jeg evt ellers kan lave en side med nogle Templates, hvor jeg kan placere menu kald bestemte steder, og menuen så bliver vist der ?


Ved godt det lyder lidt kryptisk, men skal nok prøve at forklare bedre, hvis det er at der er nogle der ikke forstår hvad jeg mener.
Avatar billede nielle Nybegynder
11. januar 2006 - 18:33 #1
Prøv med:

Response.write Execute(streng)
Avatar billede nielle Nybegynder
11. januar 2006 - 18:34 #2
... eller:

Response.write Eval(streng)
Avatar billede nielle Nybegynder
11. januar 2006 - 18:39 #3
Avatar billede KLS Novice
11. januar 2006 - 19:09 #4
hvis jeg bruger Response.write Execute(streng) så kommer den med en fejl, så jeg skal finde min asp kald i koden, og eksekveredem på deres plads.
Skal gøre det på en eller anden smart måde, men jeg ved ikke helt lige hvordan jeg skal det.

Har du nogle andre ideer nielle. ?

Jeg paster lige noget af min kode.
Function Skabelon(tmpl_valg)
tmpl_sql="select * from SKABELON_TBL where name='"&tmpl_valg&"'"
Set tmpl_data = Rsconn.execute(tmpl_sql)
Tmpl_code = tmpl_data("WEB_CODE")
Response.write execute(tmpl_code)
End Function

Det er i den funktion at jeg skal hente html kode og eksekvere den asp kode der ligger i tmpl_code

og indholdet af tmpl_code ser sådanne ud :

<table border="0" cellpadding="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber2" cellspacing="0">
        <tr>
          <td width="100%" colspan="2" style="border-style: solid; border-width: 1; padding-left: 4; padding-right: 4; padding-top: 1; padding-bottom: 1">&nbsp;</td>
        </tr>
        <tr>
          <td width="18%" style="border: 1px dotted #FF0000; padding-left: 4; padding-right: 4; padding-top: 1; padding-bottom: 1"><% call menu_gen(tmpl,1)%></td>
          <td width="82%" style="border: 1px solid #0000FF; padding: 2"><%menu_gen(tmpl,2)%>"</td>
        </tr>
      </table>
Avatar billede KLS Novice
11. januar 2006 - 19:10 #5
Hele ideen er at jeg ikke ved hvor <% befinder sig i koden og hvilken funktion det er .. håber det hjælper lidt mere.
Avatar billede nielle Nybegynder
11. januar 2006 - 19:14 #6
Har du prøvet med Eval() endnu? Det ser ud til at det er den du skal bruge.

Deuden skal din funktion menu_gen() være tilgængelig på den dide hvor du kalder Eval().
Avatar billede KLS Novice
11. januar 2006 - 19:27 #7
Det er den også for det er den side der indeholder alle mine funktioner, som jeg kalder process.asp, som i øvrigt er included i min default fil.

Men jeg kigger på eval funktionen lige om et øje blik
Avatar billede KLS Novice
11. januar 2006 - 19:33 #8
Hvis jeg bruger eval kommer den også med en fejl, så det er ikke nogle af dem jeg kan bruge rent til det, ikke i direkte forbindelse Response.write, men på en anden måde måske..

Det er første gang jeg er nødtil at bruge en database til html og asp i samme streng, så jeg ved ikke helt hvordan
Avatar billede nielle Nybegynder
11. januar 2006 - 19:35 #9
Ikke desto mindre er det en af dem der er den rigtige ... hvordan ser din fejlbesked ud?
Avatar billede KLS Novice
11. januar 2006 - 19:40 #10
Microsoft VBScript compilation error '800a03ea'

Syntax error

/process.asp, line 67

og linie 67 er Response.write Eval(tmpl_code)

Og jeg fik samme fejl da jeg brugte Response.write execute(tmpl_code)
Avatar billede nielle Nybegynder
11. januar 2006 - 19:44 #11
Hvad fpr du hvis du skriver:

Response.write Eval("Bare en test")
Avatar billede KLS Novice
11. januar 2006 - 19:47 #12
Microsoft VBScript compilation error '800a03ea'

Syntax error

/process.asp, line 68
har udkommenteret det andet og sat det ind på den næste linie, så det er Response.write Eval("Bare en Test") virker heller ikke
Avatar billede KLS Novice
11. januar 2006 - 19:56 #13
Skal lige sige at fejlen jeg får med Execute er
Microsoft VBScript compilation error '800a0400'

Expected statement

/process.asp, line 67

Nogen måde hvorpå jeg kan se hvor det er at den Expecter ?
Avatar billede nielle Nybegynder
11. januar 2006 - 20:05 #14
Er du selv herre over template'e? Altså har du mulighed for at lave dem lidt om hvis det er det der skal til?
Avatar billede KLS Novice
11. januar 2006 - 20:11 #15
Ja det er jeg
men det skal være så andre også kan lave templates, også bruge nogle funktioner jeg har lavet.. til menu generering osv..
Avatar billede nielle Nybegynder
11. januar 2006 - 20:30 #16
Har du mulighed for at ændre den sådan at den ser sådan her ud:

<table border='0' cellpadding='0' style='border-collapse: collapse' bordercolor='#111111' width='100%' id='AutoNumber2' cellspacing='0'>
    <tr>
        <td width='100%' colspan='2' style='border-style: solid; border-width: 1; padding-left: 4; padding-right: 4; padding-top: 1; padding-bottom: 1'>&nbsp;</td>
    </tr>
    <tr>
        <td width='18%' style='border: 1px dotted #FF0000; padding-left: 4; padding-right: 4; padding-top: 1; padding-bottom: 1'>"" & menu_gen(tmpl,1) & ""</td>
        <td width='82%' style='border: 1px solid #0000FF; padding: 2'>"" & menu_gen(tmpl,2) & ""'</td>
    </tr>
</table>
Avatar billede KLS Novice
11. januar 2006 - 20:35 #17
Ja, også skal jeg bruge hvad til at gøre det med ?

bare response.write ?
Avatar billede KLS Novice
11. januar 2006 - 20:47 #18
Tror fejlen ligger i min menu_gen
Man kna altså ikke lave en Function i Vbscript / asp ligesom i Visual Basic med
Function Menu_gen(tmpl,nr)
bla bla bla
End Function

??

Den kommer nemlig med følgende fejl :

Microsoft VBScript compilation error '800a0414'

Cannot use parentheses when calling a Sub

/process.asp, line 62
Avatar billede nielle Nybegynder
11. januar 2006 - 20:48 #19
Hvis det der er indholdet i din tmpl_code, så burde dette her gøre tricket:

<% Execute("Response.Write """ & tmpl_code & """") %>
Avatar billede nielle Nybegynder
11. januar 2006 - 20:49 #20
... og med "det der" menes selvfølgeligt templaten fra 11/01-2006 20:30:17 :^)
Avatar billede KLS Novice
11. januar 2006 - 20:51 #21
Jeps det er også den jeg kører med nu
Avatar billede KLS Novice
11. januar 2006 - 20:52 #22
Fandt også lige ud af jeg skal bruge call foran, for at den vil bruge min sub værdi i min function.. så nu ser det ud ti at gå den rigtige vej :D
Avatar billede KLS Novice
11. januar 2006 - 20:59 #23
Microsoft VBScript compilation error '800a0409'

Unterminated string constant

/process.asp, line 68

Er den fejl jeg får nu, men jeg kan da mærke jeg er tættere på nu end jeg var tidligere.
Avatar billede nielle Nybegynder
11. januar 2006 - 21:00 #24
Den der fejl betyder at du har glemt at afslutte en streng. Det er sikkert den som er i templaten.
Avatar billede KLS Novice
11. januar 2006 - 21:04 #25
Tjaa tror lige jeg kigger den igennem og ser om det er der fejlen ligger...
For den ser ellers rigtig nok ud, men det er det i asp er det et tegn der kan ødelægge alt.

Indtil videre takker jeg mange gange for din hjælp og tålmodighed :D
Avatar billede nielle Nybegynder
11. januar 2006 - 21:10 #26
Prøv med en:

Response.Write tmpl_code

- og post resultatet her.
Avatar billede KLS Novice
11. januar 2006 - 21:11 #27
http://test1.udrykning.info/

Der kan du se hvad den gør nu.. og det er med templaten, som du har skrevet her og med Execute("........"""")

Og det er det samme som bare at bruge response.write
Avatar billede KLS Novice
11. januar 2006 - 21:16 #28
Den der er der nu er med response.write
Avatar billede nielle Nybegynder
11. januar 2006 - 21:16 #29
Prøv lige at fjerne de call's du har set foran.
Avatar billede KLS Novice
11. januar 2006 - 21:17 #30
sådanne
Avatar billede nielle Nybegynder
11. januar 2006 - 21:19 #31
Hvad gover:

<% Execute("Response.Write """ & tmpl_code & """") %>

- så nu?
Avatar billede KLS Novice
11. januar 2006 - 21:22 #32
Sådan som den ser ud nu bare med et " mindre end med Response.write
Avatar billede nielle Nybegynder
11. januar 2006 - 21:24 #33
Den forstod jeg ikke. Prøv lige at forklare en gang til.
Avatar billede KLS Novice
11. januar 2006 - 21:27 #34
når du bruger Execute("Response.write......)

Er der et " mindre synligt end hvis du bruger Response.write
altså response.write : "" & menu_gen(tmpl,1) & ""
Ecxecute("response.write.....) : " & menu_gen(tmpl,1) & "
Avatar billede nielle Nybegynder
11. januar 2006 - 21:31 #35
Der er noget mystisk på færde hvios Execute-versionen udskriver "menu_gen(tmpl,1)" i stedet fro det resultat menu_gen(tmpl,1) skulle give.
Avatar billede KLS Novice
11. januar 2006 - 21:38 #36
Jeg er helt enig, For jeg havde siddet og bokset med problemet et par dage inden jeg skrev her inde, for tænkte der må være en måde at gøre det på, og jeg har kigget rundt omkring, og set om der var andre måder man evt kunne kringle dette problem på.

Men det ser ud til at jeg må løse det på en anden måde eller eksperimentere i løbet af weekenden, eller lidt i morgen, for har desværre ikke så meget tid resten af ugen eller i morgen. grundet julefrokost og Leder Seminar
Avatar billede nielle Nybegynder
11. januar 2006 - 21:42 #37
Denne lille demo viser at det kan lade sig gøre:

<%
Function menu_gen(A, B)
    menu_gen = "Bare en demo at princippet"
End Function

tmpl_code = "aaa "" & menu_gen(1,2) & "" bbb"
Response.Write tmpl_code & "<br>"

Execute("Response.Write """ & tmpl_code & """")
%>
Avatar billede KLS Novice
11. januar 2006 - 21:47 #38
Ja, men hvad er det så der får det til at glippe når det er at det sker via databasens indhold, som ellers ser helt normalt ud ?
Det er mere det der undrer mig.
Avatar billede KLS Novice
11. januar 2006 - 21:48 #39
aaahhh tror jeg har luret den.
for i min funktion response.writer jeg også..
tror det er der min fejl den ligger.

Tester lige.
Avatar billede polle007 Nybegynder
11. januar 2006 - 21:50 #40
du kan kigge lidt i denne tråd http://www.eksperten.dk/spm/633430
hvis du ønsker lidt inspiration til at få afviklet inlejret asp
Avatar billede KLS Novice
11. januar 2006 - 21:52 #41
nej det kan det ikke være for så langt når den jo slet ikke, så det er endnu mere underligt..

Hvad nu hvis man lavede :

<%
Function menu_gen1(A, B)
    menu_gen1 = "<table border='0' cellpadding='0' style='border-collapse: collapse' bordercolor='#111111' width='100%' id='AutoNumber2' cellspacing='0'><tr><td width='100%' colspan='2' style='border-style: solid; border-width: 1; padding-left: 4; padding-right: 4; padding-top: 1; padding-bottom: 1'>&nbsp;</td></tr><tr><td width='18%' style='border: 1px dotted #FF0000; padding-left: 4; padding-right: 4; padding-top: 1; padding-bottom: 1'>" & menu_gen(tmpl,1) & "</td><td width='82%' style='border: 1px solid #0000FF; padding: 2'>" & menu_gen(tmpl,2) & "</td></tr></table>"
End Function

Function menu_gen(A, B)
    menu_gen = "Test1"
End Function


tmpl_code = "aaa "" & menu_gen1(1,2) & "" bbb"
Response.Write tmpl_code & "<br>"

Execute("Response.Write """ & tmpl_code & """")
%>

Der er 1 " mindre end den anden, og den virker
Avatar billede KLS Novice
11. januar 2006 - 22:00 #42
Sådan problem løst.
Avatar billede KLS Novice
11. januar 2006 - 22:01 #43
Sådan ser det ud :

Function Skabelon(tmpl_valg)
tmpl_sql="select * from SKABELON_TBL where name='"&tmpl_valg&"'"
Set tmpl_data = Rsconn.execute(tmpl_sql)
Tmpl_code = tmpl_data("WEB_CODE")%>
<% Execute("Response.Write """ & tmpl_code & """") %>
<%'Response.Write tmpl_code
End Function
Function menu_Gen(tmpl,menu_type)
'1 = Normal tabel ned Menu, 2 er Menu vandret tabel.
' Generere menu udfra database, og ud fra hvad der står i tmpl
if menu_type = 1 Then
Menu_sql="select * from menu_tbl where TMPL='"&tmpl&"' and Parent=true and TMPL_MENU=FALSE"
Set Menu_data = Rsconn.execute(menu_sql)
Menu_gen = "<table border=""0"" cellpadding=""0"" cellspacing=""0"" style=""border-collapse: collapse"" bordercolor=""#111111"" width=""100%"" id=""Main_menu"">"&vbcrlf
Menu_gen = menu_gen & "<tr>"&vbcrlf
Menu_gen = menu_gen & "<td width=""100%"">"&menu_data("HD_LINE")&"</td>"&vbcrlf
Menu_gen = menu_gen & "</tr>"&vbcrlf
Menu_sql="Select * from menu_tbl where Parent=False and Parent_id="&menu_data("ID")&""
Set Menu_data = Rsconn.execute(menu_sql)
While not menu_data.eof
Menu_gen = menu_gen & "<tr>"&vbcrlf
Menu_gen = menu_gen & "<td width=""100%"">"&menu_data("HD_LINE")&"</td>"&vbcrlf
Menu_gen = menu_gen & "</tr>"&vbcrlf
menu_data.movenext
wend
Menu_gen = menu_gen & "</table>"&vbcrlf
End if
if menu_type = 2 Then
menu_gen =""
Menu_sql="select * from menu_tbl where TMPL='"&tmpl&"' and Parent=True and TMPL_MENU=True"
Set Menu_data = Rsconn.execute(menu_sql)
menu_gen =  "<table border=""0"" cellpadding=""0"" cellspacing=""0"" style=""border-collapse: collapse"" bordercolor=""#111111"" width=""100%"" id=""Main_menu"">"&vbcrlf
Menu_gen = menu_gen & "<tr>"&vbcrlf
Menu_gen = menu_gen & "<td>"&menu_data("HD_LINE")&"</td>"&vbcrlf
Menu_sql="Select * from menu_tbl where Parent=False and Parent_id="&menu_data("ID")&""
Set Menu_data = Rsconn.execute(menu_sql)
While not Menu_data.eof
Menu_gen = menu_gen & "<td>"&menu_data("HD_LINE")&"</td>"&vbcrlf
menu_data.movenext
wend
Menu_gen = menu_gen & "</tr>"&vbcrlf
Menu_gen = menu_gen & "</table>"&vbcrlf
End if
End Function

Indhold i WEB_CODE :

<table border='0' cellpadding='0' style='border-collapse: collapse' bordercolor='#111111' width='100%' id='AutoNumber2' cellspacing='0'><tr><td width='100%' colspan='2' style='border-style: solid; border-width: 1; padding-left: 4; padding-right: 4; padding-top: 1; padding-bottom: 1'>&nbsp;</td></tr><tr><td width='18%' style='border: 1px dotted #FF0000; padding-left: 4; padding-right: 4; padding-top: 1; padding-bottom: 1'>" & menu_gen(tmpl,1) & "</td><td width='82%' style='border: 1px solid #0000FF; padding: 2'>" & menu_gen(tmpl,2) & "</td></tr></table>
Avatar billede KLS Novice
11. januar 2006 - 22:03 #44
Så Nielle Smid et svar og du får point, som tak for hjælpen, og god tålmodighed.
Avatar billede KLS Novice
11. januar 2006 - 22:05 #45
Så skulle der også være mulighed for at andre med samme skøre ide som jeg kan få det til at lykkes i første hug :D Dejligt med Eksperten.dk

God aften til alle Senge tid.
Avatar billede nielle Nybegynder
11. januar 2006 - 22:07 #46
Den burde nu se sådan her ud:

Sub Skabelon(tmpl_valg)
    tmpl_sql="select * from SKABELON_TBL where name='" & tmpl_valg & "'"
    Set tmpl_data = Rsconn.execute(tmpl_sql)
    Tmpl_code = tmpl_data("WEB_CODE")
    Execute("Response.Write """ & tmpl_code & """")
    'Response.Write tmpl_code
End Sub
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