Samenvatting
In dit artikel wordt beschreven hoe u tekstbestanden maakt, schrijft, leest, verplaatst, kopieert en verwijdert vanuit een ASP-pagina (Active Server Pages).
U kunt een tekstbestand gebruiken omdat dit eenvoudiger is (wanneer een database of een meer gecompliceerde bestandsindeling overdreven is) of wanneer u al bestaande gegevens hebt in de vorm van tekstbestanden. Typische scenario's zijn:
- Een plat bestand lezen of schrijven dat is gemaakt of wordt gebruikt door een mainframe, een toepassing van derden of een handelspartner.
- Dynamische batch- of scriptbestanden van Windows genereren op basis van parameters die worden geleverd door een clienttoepassing.
Het COM-object (Component Object Model)
Scripting.FileSystemObject stelt een groot aantal voorzieningen beschikbaar voor het manipuleren van stations, mappen en bestanden. Dit
FileSystemObject-object (FSO) is geïmplementeerd binnen een in-process COM-server met de naam ScrObj.dll. In dit artikel worden alleen de voorzieningen voor bestandsmanipulatie van het FSO-objectmodel beschreven.
Terug naar begin Vereisten
Een computer met een van de volgende combinaties:
- Microsoft Internet Information Server (IIS) 4.0 en Active Server Pages (ASP) 2.0.
- Internet Information Services 5.0 en Active Server Pages 3.0.
Afgezien van de implementatiedetails kunt u de algemene technieken gebruiken met elke scripttaal die Microsoft COM-technologie ondersteunt. Deze zijn ook niet beperkt tot ASP.
Het is nuttig als u bekend bent met VBScript of JScript.
Terug naar begin Het FileSystemObject maken
Voordat u tekstbestanden gaat manipuleren, maakt u als volgt het FSO:
VBScript-codeDim objFSOSet objFSO = CreateObject("Scripting.FileSystemObject")
JScript-codevar objFSO;objFSO = new ActiveXObject("Scripting.FileSystemObject");
Terug naar begin Tekstbestanden maken, openen en verwijderen
Het FSO stelt de methode
CreateTextFile beschikbaar, waarmee u een leeg tekstbestand kunt maken. Het stelt tevens de methoden
OpenTextFile en
DeleteFile beschikbaar, waarmee u een bestaand bestand respectievelijk kunt openen en verwijderen. U kunt echter ook het
File-object gebruiken om elk van deze bewerkingen uit te voeren. Om een instantie van het
File-object te maken, roept u de methode
GetFile van het FSO aan. In dit artikel worden echter alleen de rechtstreekse methoden voor het FSO beschreven. Zie de sectie 'Referenties' voor meer informatie over de technieken met het
File-object.
Met de methode
OpenTextFile kunnen bestanden worden geopend om te worden gelezen of geschreven, of om er tekstgegevens aan toe te voegen.
VBScript-codeDim objFSO, objCreatedFile, objOpenedFileConst ForReading = 1, ForWriting = 2, ForAppending = 8
'Het FSO maken.Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objCreatedFile = objFSO.CreateTextFile("c:\HowToDemoFile.txt", True)Set objOpenedFile = objFSO.OpenTextFile("c:\HowToDemoFile2.txt", ForWriting, True)
'OjCreatedFile en objOpenedFile gebruiken om de bijbehorende bestanden te manipuleren.objCreatedFile.CloseobjOpenedFile.Close
'Verwijder de bestanden.objFSO.DeleteFile "c:\HowToDemoFile.txt"objFSO.DeleteFile "c:\HowToDemoFile2.txt"
JScript-codevar objFSO, objCreatedFile, objOpenedFile;var ForReading = 1, ForWriting = 2, ForAppending = 8;
// Het FSO maken.objFSO = new ActiveXObject("Scripting.FileSystemObject");
objCreatedFile = objFSO.CreateTextFile("c:\HowToDemoFile.txt", true);objOpenedFile = objFSO.OpenTextFile("c:\HowToDemoFile2.txt", ForWriting, true);
// OjCreatedFile en objOpenedFile gebruiken om de bijbehorende bestanden te manipuleren.objCreatedFile.Close();objOpenedFile.Close();
// Verwijder de bestanden.objFSO.DeleteFile("c:\HowToDemoFile.txt");objFSO.DeleteFile("c:\HowToDemoFile2.txt");
Terug naar begin Lezen van en schrijven naar een tekstbestand
De methode
CreateTextFile of
OpenTextFile van het FSO retourneert een instantie van het
TextStream-object, dat methoden beschikbaar stelt voor het schrijven of lezen van tekstbestanden.
Zowel de methode
Write als
WriteLine voegt tekst toe een een geopend bestand, maar met
WriteLine wordt tevens een teken voor een nieuwe regel toegevoegd. Met de methode
WriteBlankLines worden een of meer lege regels geschreven naar een geopend bestand, op basis van de parameter die is opgegeven.
Met de methode
Read wordt het opgegeven aantal tekens vanaf de huidige positie in het geopende bestand gelezen. Met de methode
ReadLine wordt een gehele regel gelezen (tot aan, maar exclusief, het teken voor een nieuwe regel), terwijl met de methode
ReadAll de hele inhoud van het geopende bestand wordt gelezen. Met deze drie methoden wordt de resulterende tekst opgeslagen in een tekenreeks die u eenvoudig kunt manipuleren met verschillende bewerkingen voor het manipuleren van tekenreeksen.
In de volgende code ziet u het gebruik van deze methoden:
VBScript-codeDim objFSO, objTextFileDim sRead, sReadLine, sReadAllConst ForReading = 1, ForWriting = 2, ForAppending = 8
Set objFSO = CreateObject("Scripting.FileSystemObject")Set objTextFile = objFSO.CreateTextFile("c:\HowToDemoFile.txt", True)
' Een regel schrijven met een teken voor een nieuwe regel.objTextFile.WriteLine("Deze regel wordt geschreven met WriteLine().")
' Een regel schrijven.objTextFile.Write ("Deze regel wordt geschreven met Write().")
' Drie tekens voor een nieuwe regel schrijven naar het bestand.objTextFile.WriteBlankLines(3)
objTextFile.Close
' Bestand openen voor lezen.Set objTextFile = objFSO.OpenTextFile("c:\ProcDemoBest.txt", ForReading)
' Verschillende methoden gebruiken om de inhoud van het bestand te lezen.sReadLine = objTextFile.ReadLinesRead = objTextFile.Read(4)sReadAll = objTextFile.ReadAll
objTextFile.Close
JScript-codevar objFSO, objTextFile;var sRead, sReadLine, sReadAll;var ForReading = 1, ForWriting = 2, ForAppending = 8;
objFSO = new ActiveXObject("Scripting.FileSystemObject");objTextFile =objFSO.CreateTextFile("c:\HowToDemoFile.txt", true);
// Een regel schrijven met een teken voor een nieuwe regel.objTextFile.WriteLine("Deze regel wordt geschreven met WriteLine().");
// Drie tekens voor een nieuwe regel schrijven naar het bestand.objTextFile.WriteBlankLines(3);
// Een regel schrijven.objTextFile.Write ("Deze regel wordt geschreven met Write().");objTextFile.Close();
// Bestand openen voor lezen.objTextFile = objFSO.OpenTextFile("c:\HowToDemoFile.txt", ForReading);
// Verschillende methoden gebruiken om de inhoud van het bestand te lezen.sReadLine = objTextFile.ReadLine();sRead = objTextFile.Read(4);sReadAll = objTextFile.ReadAll();
objTextFile.Close();
Terug naar begin Tekstbestanden verplaatsen en kopiëren
Het FSO stelt de methoden
MoveFile en
CopyFile beschikbaar, waarmee u bestanden respectievelijk kunt verplaatsen en kopiëren. U kunt echter ook het
File-object gebruiken om deze twee bewerkingen uit te voeren. Om een instantie van het
File-object te maken, roept u de methode
GetFile van het FSO aan. In dit artikel worden echter alleen de rechtstreekse methoden voor het FSO beschreven. Zie de sectie 'Referenties' voor meer informatie over de technieken met het
File-object.
In de volgende code ziet u het gebruik van deze methoden:
VBScript-codeDim objFSOSet objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.MoveFile "c:\HowToDemoFile.txt", "c:\Temp\"objFSO.CopyFile "c:\Temp\HowToDemoFile.txt", "c:\"
JScript-codevar objFSO;objFSO = new ActiveXObject("Scripting.FileSystemObject");
objFSO.MoveFile("c:\HowToDemoFile.txt", "c:\Temp\");objFSO.CopyFile("c:\Temp\HowToDemoFile.txt", "c:\");
Terug naar begin Probleemoplossing
- Foutberichten bij het maken van Scripting.FileSystemObject:
Dit probleem kan de volgende oorzaken hebben:
- ScrObj.dll is niet geïnstalleerd op de distributiecomputer.
- ScrObj.dll is per ongeluk verwijderd.
- De registratie van ScrObj.dll in het COM-register is per ongeluk verwijderd.
Omdat ScrObj.dll wordt opgeslagen in de map <Installatiemap van Windows>\System32, maakt het deel uit van de Dynamic-Link Libraries (DLL's) van het besturingssysteem. Het bestand kan daarom niet worden verwijderd op Windows 2000-computers, tenminste niet zonder extreme maatregelen waardoor het systeem ernstig wordt verstoord. - Foutberichten tijdens het uitvoeren van bewerkingen om bestanden te manipuleren:
Wanneer stations zijn geformatteerd met het bestandssysteem NTFS, hebben gebruikers in de groep Administrator het beheer over beveiligingsmachtigingen voor gehele stations, mappen en bestanden. Met name op webservers moeten Administrators sterke beveiligingsmachtigingen afdwingen om illegale toegang tot bestanden en gegevens te voorkomen. Wanneer u een ASP-toepassing maakt die gebruikmaakt van de eerder genoemde technieken voor het manipuleren van bestanden, moet extra aandacht worden besteed aan de beveiligingsmachtigingen voor het bestandssysteem op distributiecomputers, om fouten te voorkomen die betrekking hebben op onvoldoende beveiligingsmachtigingen.
Terug naar begin