Wachtwoord vergeten?

Wachtwoord vergeten
Vul hier uw email adres in. U ontvangt dan een nieuw wachtwoord.

Tekstbestanden manipuleren in een ASP-pagina

Gepost op 22-01-2007 - Overige Microsoft Producten - 0 reacties


De informatie in dit artikel is van toepassing op:

  • Microsoft Active Server Pages 4.0 op de volgende platformen
    • Microsoft Windows 2000 Standard Edition
    • Microsoft Windows NT 4.0

Dit artikel is eerder gepubliceerd onder NL300982

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-code
Dim objFSOSet objFSO = CreateObject("Scripting.FileSystemObject")
JScript-code
var 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-code
Dim 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-code
var 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-code
Dim 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-code
var 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-code
Dim objFSOSet objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.MoveFile "c:\HowToDemoFile.txt", "c:\Temp\"objFSO.CopyFile "c:\Temp\HowToDemoFile.txt", "c:\"

JScript-code
var 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

Referenties


Raadpleeg de volgende MSDN-websites voor meer informatie over scripting:
Deze onderwerpen vindt u ook in de volgende mappen op de MSDN-cd van april 2001 onder "Platform SDK Documentation":

Tools and Scripting\Scripting\Scripting Runtime\FileSystemObject Object

Terug naar begin

PrintPrint RSS reactiesRSS reacties BookmarkBookmark

Gekoppelde tags

ActiveX, ASP, Database, DLL, Foutbericht, IIS, Windows 2000, Windows NT

Reacties
Nog geen reacties geplaatst.

Winkelmandje

Het winkelmandje is leeg

Inloggen
Als u hierboven op de knop 'bestellen' klikt krijgt u een overzicht van de door uw gewenste producten. Indien het overzicht compleet en correct is kunt via de wizard de verdere gegevens invullen en uw bestelling afronden. In het bestelproces kunt u altijd op 'vorige' drukken om terug te gaan in het proces. Bij Perrit staan vertrouwen, privacy en veiligheid op de eerste plaats, wij zullen uw gegevens dan ook met uiterste zorgvuldigheid behandelen en nooit doorgeven aan derden.

Perrit.nl Sherwood Rangers 29 Hengelo

Perrit.nl telefoon: +31 74 750 12 20

Kenniscentrum - Tekstbestanden manipuleren in een ASP-pagina
Perrit Kenniscentrum - Tekstbestanden manipuleren in een ASP-pagina