I den forrige lektion læste vi fra en tekstfil. I denne lektion vil vi istedet skrive til en tekstfil.
Metoderne ligner til forveksling hinanden, men der er en meget væsentlig forskel: Du skal have skriverettigheder til filen. Dette vil i praksis sige at filen skal ligge i en folder, hvor rettighederne er sat på den rigtige måde.
På mange webhoteller er der som standard én folder hvor du har skriverettigheder - den hedder måske noget i retning af "cgi-bin", "log", "databaser", eller noget lignende. Prøv at læse mere om emnet på din udbyders supportsider. Hvis du arbejder lokalt på din egen PC har du mulighed for selv at definere rettighederne.
Bemærk at det er tekstfilen, som skal ligge i folderen med skriverettigheder - ikke ASP-filen.
På samme måde, som når man skal læse fra filen, benyttes
OpenTextFile metoden - men denne gang skal mode sættes til 2 (ForWriting), eller 8 (ForAppending).
Forskellen på ForWriting og ForAppending er hvor 'cursoren' er placeret - enten i starten eller slutningen af tekstfilen.
Eksemplerne i lektionen baseres på en tom tekstfil, som vi kalder for tekstfil.txt - du kan naturligvis lave din egen fil hvis du har lyst.
Lad os først prøve at åbne tekstfil.txt til skrivning:
<% ' Variabler Dim fso, f, filespec ' Filesystem objektet Set fso = CreateObject("Scripting.FileSystemObject") ' Find den fysiske placering af tekstfilen filespec = Server.Mappath("/tutorials/asp/tekstfil.txt") ' Åbn tekstfilen Set f = fso.OpenTextFile(filespec,2) ' Luk tekstfilen igen f.Close %>
For at skrive en linie, skal vi have fat på metoden
WriteLine. Med den kan man tilføje en linie sådan her:
<html> <head> <title>Læse fra tekstfiler</title> </head> <body> <% Dim fso, f, filespec Set fso = CreateObject("Scripting.FileSystemObject") filespec = Server.Mappath("/tutorials/asp/tekstfil.txt") Set f = fso.OpenTextFile(filespec,2) ' Skriv tekst i en linie f.WriteLine "VBScript og ASP er sjovt!" ' Åbn filen til læsning og læs linie Set f = fso.OpenTextFile(filespec,1) Response.write f.ReadLine f.Close %> </body> </html>
Idet vi åbnede filen 'ForWriting' indsættes linien øverst, og overskriver dermed den eksisterende linie. Hvis vi istedet åbner filen 'ForAppending' tilføjes linien i bunden af tekstfilen, som dermed vil vokse med en linie hver gang der skrives til den.
Det er naturligvis også muligt at tilføje en hel tekstblok til filen, istedet for bare en enkelt linie. Dette gøres med metoden
Write - sådan her:
<html> <head> <title>Læse fra tekstfiler</title> </head> <body> <% Dim fso, f, filespec Set fso = CreateObject("Scripting.FileSystemObject") filespec = Server.Mappath("/tutorials/asp/tekstfil.txt") Set f = fso.OpenTextFile(filespec,2) ' Skriv tekst i en linie f.Write Request.Form("tekstblok") ' Åbn filen til læsning og Læs linie for linie Set f = fso.OpenTextFile(filespec,1) Do While not f.AtEndOfStream Response.write f.ReadLine & "<br>" Loop f.Close %> </body> </html>
I de næste lektioner skal vi kigge på en anden mulighed for at lagre data - databaser.