webForumDet fria alternativet

Skriv asp-kod med WriteLine

ASP

5 svar · 582 visningar · startad av Oputres

Medlem sedan feb. 2004333 inlägg
Frågan#1

Allå!

Jag använder FSO för att skapa en mapp och i den mapp skapa en default.asp-fil. När den är klar skall den se ut så här:

<%
Option Explicit
Response.Buffer = True
%>

<!-- #include file="../inst/dbanslutning_medlem2.asp" -->

<%
Dim User, RS, strKontonamn, strAnvId, blnAktiverat
'############## ANGE KONTONAMN NEDAN ##############
strKontonamn = "Donald" 'Namn hämtat från strKontonamn-variabeln
'##################################################

Set RS = Connect.Execute("Select AnvId, OrgNamn, Aktiverat From AnvDb Where Kontonamn = '" & strKontonamn & "';")

If Not RS.EOF Then
  blnAktiverat = CBool(RS("Aktiverat"))
End If

If RS.EOF Then
  Response.Redirect("error_fyranollfyra.asp")
ElseIf blnAktiverat = False Then
  Response.Redirect("error_inactive.asp")
Else
  strAnvId = RS("AnvId")
End If
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
  <title><% =RS("OrgNamn") %></title>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<frameset rows="*,1" cols="*" framespacing="0" frameborder="NO" border="0">
  <frame src="../ks/default.asp?AnvId=<% =strAnvId %>">
  <frame src="../bottom.htm" scrolling="NO" noresize>
</frameset>
<noframes><body>

</body></noframes>
</html>

Till min hjälp har jag fått följande exempel:

SkapaFil.WriteLine("Hej "& strKontonamn &", detta är din unika fil.<br>")

Men hur går det då att skriva asp-tecken i denna process? Ta t.ex. den här raden:

<!-- #include file="../inst/dbanslutning_medlem2.asp" -->

När jag kommer till "-tecknet kommer ju WriteLine stoppa här. Likaså har jag ju <% och %>-tecken som skall in. Måste jag här leta upp alla alternativa koder, typ   för mellanslag (den enda jag kan utantill :)) och skriva:

SkapaFil.WriteLine("[I]&knasigkodförprocent;[/I] "& strKontonamn &" m.m.<br>")

eller finns det ett enklare sätt?

Vad händer om jag skriver SkapaFil.WriteLine("""). Blir det ett " av det?

Och slutligen den här raden:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
Står EN för engelska och skall bytas ut mot SV om det är en svensk sida?

Medlem sedan juni 200032 967 inlägg
#2

Citationstecken escapeas med citationstecken. Ska du skriva ett citationstecken till fil blir det alltså:

SkapaFil.WriteLine("""")

Så i alla strängar där du har citationstecken måste du istället ha två. Om du ska ha med contextswitchar så måste du dela på dem:

SkapaFil.WriteLine("<" & "%")
' resp
SkapaFil.WriteLine("%" & ">")
Medlem sedan feb. 2004333 inlägg
#3

Får det inte att fungera :(

Till exempel ger följande kod:

SkapaFil.WriteLine("Set RS = Connect.Execute(""""Select AnvId, OrgNamn, Aktiverat From AnvDb Where Kontonamn = '"""" & strKontonamn & """"';"""")")

det här resultatet:

Set RS = Connect.Execute(""Select AnvId, OrgNamn, Aktiverat From AnvDb Where Kontonamn = '"" & strKontonamn & ""';"")

vilket bjuder på det här felmeddelandet:

Microsoft VBScript compilation  error '800a03ee'

Expected ')'

/test/default.asp, line 6

Set RS = Connect.Execute(""Select AnvId, OrgNamn, Aktiverat From AnvDb Where Kontonamn = '"" & strKontonamn & ""';"")
---------------------------^

Hur trycker jag dit enbart ett citationstecken? :q

Medlem sedan feb. 2004333 inlägg
#4

Ps. I övrigt fungerar det utmärkt, det är alltså bara citationstecknen som lurar Ds.

Medlem sedan nov. 20017 144 inlägg
#5

Överdriv inte med citationstecken. ;)

SkapaFil.WriteLine("Set RS = Connect.Execute(""Select AnvId, OrgNamn, Aktiverat From AnvDb Where Kontonamn = '"" & strKontonamn & ""';"")")
Medlem sedan feb. 2004333 inlägg
#6

Se där, det fungerade ju utmärkt.

En dag kommer jag titta tillbaka på min kod ovan och skämmas :)

258 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)