Nyeste it-job

Lektion 16: Skrive til en tekstfil

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.

Åbn tekstfilen til skrivning

På samme måde, som når man skal læse fra filen, benyttes dokumentationOpenTextFile 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
%>

Eksempel 1: Skriv en linie til tekstfilen

For at skrive en linie, skal vi have fat på metoden dokumentationWriteLine. 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.

Eksempel 2: Tilføje en tekstblok til tekstfilen

Det er naturligvis også muligt at tilføje en hel tekstblok til filen, istedet for bare en enkelt linie. Dette gøres med metoden dokumentationWrite - 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.


Nyhedsbrev
Tilmeld dig HTML.dk's nyhedsbrev


Er du jobsøgende?

 Ja
 Nej
Se det foreløbige resultat når du har stemt!


Se tidligere afstemninger

 Community
Brugernavn

Adgangskode

Husk

 *  Bliv medlem her
 *  Glemt password?


Om HTML.dk | Oplysninger om ophavsret | Politik om persondata | Annoncer på HTML.dk | RSS

Valid XHTML 1.1! Valid CSS! Powered by Scannet