Avatar billede vraa Nybegynder
07. september 2004 - 12:21 Der er 18 kommentarer og
2 løsninger

Include file problem

Jeg vil gerne lave en include(f.eks. <!--#include file="include/site/asp/referencer.asp" -->) hentet fra en DB men det bliver kun skrevet ud som alm. tekst. Filen bliver ikke genereret på siden. Jeg ved godt at det er pga. den rækkefølge serveren genererer ASP koden, men er der nogen har en løsning på dette problem.
Avatar billede Jman Praktikant
07. september 2004 - 12:27 #1
ikke forstået - er det visuelt du mener (det skal i så fald kodes på referencer.asp-siden)
Avatar billede thomas_yde Nybegynder
07. september 2004 - 12:50 #2
du kan lave en Server.Execute(filnavn)
Avatar billede vraa Nybegynder
07. september 2004 - 13:00 #3
thomas_yde>> Der er garanteret noget af det rigtige. Problemet er at dette: <%Server.execute("include/site/asp/referencer.asp")%> bliver hentet fra en db og når siden hvor det hele hentes ud på vises, sker der ingenting. Laver jeg en vis kilde ser koden således ud:

</P><%Server.execute("include/site/asp/referencer.asp")%><P>

Det bliver bare skrevet ud som alm. html pga Server.execute functionen hentes fra en DB.
Avatar billede thomas_yde Nybegynder
07. september 2004 - 13:24 #4
prøv at give mig noget mere kode. jeg tror måske det er din write der er problemet
Avatar billede dodger Nybegynder
07. september 2004 - 16:39 #5
Er det du vil noget i retning af
<% Server.execute( db("include") ) %>
hvor db("include") er det du henter fra databasen?
Avatar billede vraa Nybegynder
07. september 2004 - 16:59 #6
Jeg prøver lige igen :-)
Jeg henter noget data fra en database ud på en asp side. Jeg har så lavet en ekstra fil der hedder referencer.asp med nogle form elementer og noget asp kode i. Det der ligger i referencer.asp vil jeg gerne have til at være midt i noget af det alm. tekst(html) jeg henter fra databasen.

Håber det var mere forståeligt.
Avatar billede koldy Nybegynder
08. september 2004 - 04:08 #7
Du kan ikke skrive ASP kode i et noget du henter fra databasen, men løsningen hedder replace og split ;). det du skal gøre er at lave en funktions commando i din text i datbasen

Eksempel kan du lave en funktion der hedder include#filname

Funktion kunne så se sådan ud (ved ikke om der findes en bedre/letter metode, men denne er den jeg kender)

<%
Function include(text)
    incArray = Split(text, "include#")
    If Ubound(incArray) >= 1 then
    i = 1
        Do While i < Ubound(incArray) + 1
            incFileName = Split(incArray(i), " ")
            inc = inc & Server.Execute(incFileName(0))
            i = i + 1
        Loop
    End If
    include = incArray(0) & inc
End Function
%>

Funktionen skal stå over der hvor du vil udskrive, og du når du udskriver med den skriver du bare include(RS("text"))

Håber det kan bruges
Avatar billede koldy Nybegynder
08. september 2004 - 04:38 #8
må indrømme det virkede ikke helt som jeg havde forudset..
Avatar billede koldy Nybegynder
08. september 2004 - 04:38 #9
man kan tilsydenladne ikke smide Server.Execute ind i en variable..
Avatar billede koldy Nybegynder
08. september 2004 - 04:40 #10
Hvad skal du bruge det til?, det virker lidt underligt at give mulighed for at kunne includere en fil på den måde?.
Avatar billede koldy Nybegynder
08. september 2004 - 04:53 #11
ahh tror jeg har den.. prøver lige ;)
Avatar billede koldy Nybegynder
08. september 2004 - 06:13 #12
Sorry jeg spammer lidt :(

Best som man tror det er umuligt kommer der en løsning til hovedet, også kan jeg altså ikke sove. :D

her:
<%
test = "this is the text wiht aspcommand that i want to try out, the asp command is -> "" [ASPcommand]server.execute(""test.asp"")[/ASPcommand] "" og lidt mere crap for dem der vil ha det ;)"

'Først finder vi lige asp koden, ud fra [command][/command]
If inStr(test, "[ASPcommand]") then
    Stno = inStr(test, "[ASPcommand]") + 12
    Slno = inStr(test, "[/ASPcommand]") - Stno
    command = Mid(test, Stno, Slno)

    'Så har vi fundet commandoen, så skal vi ha fundet det text der er før og efter commandoen. det gør vi via split.
    txtArray = split(test, "[ASPcommand]" & command & "[/ASPcommand]")
    If Ubound(txtArray) => 1 Then
        txtFore = txtArray(0)
        txtBefore = txtArray(1)
    Else
        txtFore = txtArray(0)
    End If
   
    'også er det tid til at udskrive
    Response.Write txtFore
    Execute command
    Response.Write txtBefore
Else
    Response.Write test
End if

%>

Den virker dog kun ved første aspcommando, er det godt nok?. ellers må jeg jo lige lave det så den virker ved flere også ;)

Denne virker hos mig iværtfald ;)
Håber det kan bruges ;)

/Thomas
Avatar billede vraa Nybegynder
08. september 2004 - 09:13 #13
Koldy>> Kanon du gider at forsøge så meget, men jeg er lidt lost der. Hvad skal i DB og hvad skal i ASP dokumentet.

Det vil være perfekt hvis du kan lave et eksempel ud fra de oplysninger jeg har givet.
At jeg skal have filen referencer.asp inkluderet midt i noget tekst jeg henter fra en DB.

Eks.

Tekst fra DB:
"Udfyld venligst nedenstående formular<br><br>(HER SKAL FILEN INKLUDERES!!)<P>Dette er mere tekst fra DB</P>"
Avatar billede thomas_yde Nybegynder
08. september 2004 - 09:16 #14
vraa kan du ikke poste hele din kode ? så er det lidt nemmere at hjælpe dig.
skriv også hvor du vil have execute
Avatar billede koldy Nybegynder
08. september 2004 - 09:47 #15
den variable der hedder test skal i db, resten skal i asp document.

"Udfyld venligst nedenstående formular<br><br>[ASPcommand]Server.Execute("referencer.asp")[/ASPcommand]<P>Dette er mere tekst fra DB</P>"

der hvor det skal stå, smider du så resten af koden.
Avatar billede koldy Nybegynder
08. september 2004 - 10:01 #16
ved ikke om det gir mening... prøver lige på en anden måde
i db har du følgende stående i cellen text: Udfyld venligst nedenstående formular<br><br>[ASPcommand]Server.Execute("referencer.asp")[/ASPcommand]<P>Dette er mere tekst fra DB</P>

Du har så på forhånd lavet adgang til databasen så sætter du bare test = RS("text") sådan her
<%
test = RS("text")
'Først finder vi lige asp koden, ud fra [command][/command]
If inStr(test, "[ASPcommand]") then
    Stno = inStr(test, "[ASPcommand]") + 12
    Slno = inStr(test, "[/ASPcommand]") - Stno
    command = Mid(test, Stno, Slno)

    'Så har vi fundet commandoen, så skal vi ha fundet det text der er før og efter commandoen. det gør vi via split.
    txtArray = split(test, "[ASPcommand]" & command & "[/ASPcommand]")
    If Ubound(txtArray) => 1 Then
        txtFore = txtArray(0)
        txtBefore = txtArray(1)
    Else
        txtFore = txtArray(0)
    End If
   
    'også er det tid til at udskrive
    Response.Write txtFore
    Execute command
    Response.Write txtBefore
Else
    Response.Write test
End if

%>
også skulle det køre..
Avatar billede vraa Nybegynder
08. september 2004 - 12:07 #17
koldy>> Helt perfekt. Virker like a charm. Ligger du ikke lige et svar så du kan få dine velfortjente point.
Avatar billede koldy Nybegynder
08. september 2004 - 15:42 #18
yes, men husk det virker kun med den første ASP kommando, eller det vil sige du kan faktisk inden for [ASPcommand][/ASPcommand] smide ligeså meget asp kode du vil, men du kan ikke bruge [ASPcommand][/ASPcommand]mere end en gang i en string, på den her måde..

Mvh Thomas
Avatar billede vraa Nybegynder
08. september 2004 - 17:35 #19
Den er forstået.

thomas_yde>> Du for også lidt for dine bestræbelser.

Jeg takker endnu en gang for hjælpen :-)
Avatar billede koldy Nybegynder
08. september 2004 - 20:06 #20
selv tak, og tak for points..
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