MSWC - Tools
Förord
Det finns diverse olika komponenter och object inom ASP. Dels har vi de inbyggda objekten. Med installationen av IIS försörjjer också några andra trevliga komponenter som man kan använda. Vi ska här titta på komponenten Tools.Innehåll
»»
Tools -> Mall
Tools är en intressant komponent med flera olika funktioner. Den kan användas till både det ena och det andra. Bland annat till att skapa slumptal, generera HTML-sidor, kontrollera om användaren är administratör av sidan eller om en speciell fil finns på webbplatsen. Egenskapen Random fungerar likadant som funktionen Rnd i VBScript, med skillnaden att Random returnerar ett heltal. En liten jämförelse mellan dessa två:
<% 'Slumpa med Tools
Set Tol = Server.CreateObject("MSWC.Tools")
response.write "
" & Tol.Random
'Slumpa med VBScript
Randomize
response.write "
" & rnd() %>
Talet som Tools genererar ligger någonstans mellan -32768 och 32767. Vad vi däremot får från VBScriptets slumpfunktion är ett tal mellan noll och ett.
Om man uteslutande vill ha ett positiva tal sätter man Abs framför metoden.
<% Response.write Abs(Tools.Random)%>
Skapa nya sidor från en mall
En ganska mäktig metod för Tools-komponenten är ProcessForm. Dem har förmågan att skapa helt nya ASP-filer utifrån en mall. Enkelt och elegant kan man därigenom bygga sig en form av administrationsverktyg av webbplatsen. Om man vill kunna uppdatera sina hemsidor utan att behöva joxa med HTML-koden är det här ett idealiskt sätt. Dessutom görs det direkt i webbläsaren.
För att kunna använda metoden krävs det att man ar två ASP-filer, en där den nya filen ska skapas och en som utgör själva mallen, Den första ASP-filen innehåller ett formulär där man fyller i innehållet i den sida som ska genereras.
Det här formuläret skickar sedan resultatet till den egna sidan, som tar emot värdet från namnfältet.
<% namn = request.form("namn")
if not namn = "" then
namn = namn & ".asp"
Set Tol = Server.CreateObject("MSWC.Tools")
Tol.ProcessForm namn, "mall.asp"
response.redirect namn
%>
Om fältet innehåller text kommer den nya filen att skapas. först tilldelas den filändelsen .asp, eftersom det är en HTML-sida som skapas. Även andra filtyper fungerar utmärkt, som till exempel HTML-Filer. Eftersom den nya sidan också kan innehålla ASP-kod kan man låta den vara dynamisk fullt ut. Komponenten Tools instansieras och så används metoden ProcessForm. Syntaxen ser den ur så här:
Tools.ProcessForm (OutPutFileURL, TemplateURL,[InsertionPoint])
Den första parametern är namnet på den fil som ska skapas. Finns den redan kommer den att skrivas över. därefter anger man namnet på den mallfil som ska användas. Det är en ASP-fil. Nu är det dags att titta närmare på hur den ser ut.
<%%=Request.Form("namn")%%>
<%%=request.form("text1")%%>
<%%=Request.form("text2")%%>
Skapad:
<%%=Now()%%>
Klock
<%=Time()%>
Här stöter vi plötsligt på en ny typ av taggar. vanlig ASP-Kod skrivs mellan procenttaggar. Den kod som ska skapas från den första ASP-sidan skrivs mellan dubbla procenttaggar.
<%%=request.form("text1")%%>
Det användaren har skrivit i textrutan omvandlas här till vanlig HTML-Kod. Allt det som skrivs mellan dubbla procenttaggar exekveras vid skapandet av filen. Mallen innehåller dels vanlig HTMl-kod, dels den här nya typen av ASP-kod. Den vanliga ASP-koden, med enkla procenttaggar, körs precis som vanligt var gång en användare begärt sidan från servern. Efter att metoden ProcessForm har utförts i sida1.asp så sker en omdirigering till den nya sidan.
filen finns nu sparad på hårddisken. Öppnas den här filen i utforskaren ska för editering ser innehållet ut på detta sätt:
MinSida
MinSida!
En liten text!
Skapad:
2002-03-29 18:25:12
Klockan är:
<%=Time()%>
Med ytterst få kodrader kan man så här enkelt producera snygga, funktionella ASP-sidor.
Tools -> FileExists
Många gånger vill man veta ifall en fil verkligen existerar, innan man verkligen börjar att behandla den i kod. Innan man gör en omdiigering till en anna sida är det ju en klar fördel att veta att sidan finns där, eller om man ska skriva ut bilder på sidan och behöver veta att den finns där. Metoden FileExists kontrollerar filens existens på webbplatsen. Följande sida skickar ett sökord till sig själv och skriver ut resultatet på sidan.
<% Fil = Request.form("fil")
it not Fil = "" then
Set Tol = Server.CreateObject("MSWC.Tools")
if Til.FileExists(Fil) then
response.write Fil & " finns!"
else
response.write Fil & " saknas!"
end if
end if
%>
Resultatet blir booleskt värde, true om filen existerar och false om den saknas. Eftersom man bara kan testa på publicerade filer, så anger man en relativ sökväg istället för en absolut. Filen måste alltså finnas på webbplatsen, Inom den egna mappen behöver ingen sökväg anges.
0 Kommentarer