Cómo manipular archivos de texto en una página ASP

Resumen

En este artículo se describe cómo crear, escribir, leer, mover, copiar y eliminar archivos de texto dentro de una página de páginas Active Server (ASP).

Puede que desee utilizar un archivo de texto en aras de la simplicidad (cuando una base de datos o el formato de archivo más complejo puede ser excesivo) o cuando los datos ya existan en forma de archivos de texto. Los escenarios habituales son:
  • Leer o escribir un archivo sin formato que un mainframe, aplicaciones de otros fabricantes o socio comercial crea o utiliza.
  • Generación dinámica de archivos por lotes o secuencia de comandos de Windows a partir de los parámetros proporcionados por una aplicación cliente.
El modelo de objetos componentes (COM) Scripting.FileSystemObject expone un amplio conjunto de características para manipular unidades, carpetas y archivos. El objeto FileSystemObject (FSO) se implementa dentro de un servidor de COM en proceso denominado ScrObj.dll. En este artículo sólo se examina las características de manipulación de archivos del modelo de objetos FSO.

Requisitos

El equipo debe ejecutar:

  • Microsoft Internet información Server (IIS) 4.0 y páginas Active Server (ASP) 2.0.
  • Servicios de Internet Information Server 5.0 y páginas Active Server 3.0.
Puede utilizar técnicas generales, si no los detalles de implementación, con cualquier lenguaje de secuencias de comandos que admita la tecnología Microsoft COM; También no están restringidas a ASP.

Es útil si está familiarizado con VBScript o JScript.

Crear el objeto FileSystemObject

Antes de manipular archivos de texto, cree el FSO como sigue:

Código de VBScript
Dim objFSOSet objFSO = CreateObject("Scripting.FileSystemObject")

Código de JScript
var objFSO;objFSO = new ActiveXObject("Scripting.FileSystemObject");

Cómo crear, abrir y eliminar archivos de texto

El FSO expone el método CreateTextFile , que le permite crear un archivo de texto vacío. También expone los métodos OpenTextFile y DeleteFile , que permiten abrir o eliminar un archivo existente, respectivamente. Como alternativa, puede utilizar el objeto File para realizar cada una de estas tres operaciones. Para obtener una instancia del objeto de archivo , llame al método GetFile del FSO. Sin embargo, este artículo sólo demuestra los métodos directos de FSO. Consulte la sección "Referencias" para obtener más información acerca de las técnicas del objeto de archivo .

El método OpenTextFile permite abrir para leer, escribir o anexar información de texto los archivos.

Código de VBScript
Dim objFSO, objCreatedFile, objOpenedFileConst ForReading = 1, ForWriting = 2, ForAppending = 8

'Create the FSO.
Set objFSO = CreateObject("Scripting.FileSystemObject")

Set objCreatedFile = objFSO.CreateTextFile("c:\HowToDemoFile.txt", True)
Set objOpenedFile = objFSO.OpenTextFile("c:\HowToDemoFile2.txt", ForWriting, True)

'Use objCreatedFile and objOpenedFile to manipulate the corresponding files.
objCreatedFile.Close
objOpenedFile.Close

'Delete the files.
objFSO.DeleteFile "c:\HowToDemoFile.txt"
objFSO.DeleteFile "c:\HowToDemoFile2.txt"

Código de JScript
var objFSO, objCreatedFile, objOpenedFile;var ForReading = 1, ForWriting = 2, ForAppending = 8;

// Create the FSO.
objFSO = new ActiveXObject("Scripting.FileSystemObject");

objCreatedFile = objFSO.CreateTextFile("c:\\HowToDemoFile.txt", true);
objOpenedFile = objFSO.OpenTextFile("c:\\HowToDemoFile2.txt", ForWriting, true);

// Use objCreatedFile and objOpenedFile to manipulate the corresponding files.
objCreatedFile.Close();
objOpenedFile.Close();

// Delete the files.
objFSO.DeleteFile("c:\\HowToDemoFile.txt");
objFSO.DeleteFile("c:\\HowToDemoFile2.txt");

Cómo escribir y leer un archivo de texto

Los métodos CreateTextFile o OpenTextFile del FSO devuelven una instancia del objeto TextStream , que expone los métodos para leer o escribir archivos de texto.

Métodos de escritura tanto el método WriteLine agregan texto a un archivo abierto, pero WriteLine también anexa un carácter de nueva línea al final. El método WriteBlankLines escribe una o varias líneas en blanco en un archivo abierto en función del parámetro especificado.

El método Read lee el número especificado de caracteres desde la posición actual del archivo abierto. El método ReadLine lee una línea entera (hasta, pero excluyendo el carácter de nueva línea), mientras que el método ReadAll lee todo el contenido del archivo abierto. Tres de estos métodos almacenan el texto resultante en una cadena que se puede manipular fácilmente con varias operaciones de manipulación de cadenas.

El código siguiente demuestra estos métodos:

Código de VBScript
Dim objFSO, objTextFileDim sRead, sReadLine, sReadAll
Const ForReading = 1, ForWriting = 2, ForAppending = 8

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.CreateTextFile("c:\HowToDemoFile.txt", True)

' Write a line with a newline character.
objTextFile.WriteLine("This line is written using WriteLine().")

' Write a line.
objTextFile.Write ("This line is written using Write().")

' Write three newline characters to the file.
objTextFile.WriteBlankLines(3)

objTextFile.Close

' Open file for reading.
Set objTextFile = objFSO.OpenTextFile("c:\HowToDemoFile.txt", ForReading)

' Use different methods to read contents of file.
sReadLine = objTextFile.ReadLine
sRead = objTextFile.Read(4)
sReadAll = objTextFile.ReadAll

objTextFile.Close

Código de JScript
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);

// Write a line with a newline character.
objTextFile.WriteLine("This line is written using WriteLine().");

// Write three newline characters to the file.
objTextFile.WriteBlankLines(3);

// Write a line.
objTextFile.Write ("This line is written using Write().");
objTextFile.Close();

// Open file for reading.
objTextFile = objFSO.OpenTextFile("c:\\HowToDemoFile.txt", ForReading);

// Use different methods to read contents of file.
sReadLine = objTextFile.ReadLine();
sRead = objTextFile.Read(4);
sReadAll = objTextFile.ReadAll();

objTextFile.Close();

Cómo mover y copiar archivos de texto

El FSO expone los métodos MoveFile y CopyFile , que permiten mover y copiar archivos respectivamente. Como alternativa, puede utilizar el objeto File para realizar cada una de estas dos operaciones. Para obtener una instancia del objeto de archivo , llame al método GetFile del FSO. Sin embargo, este artículo sólo demuestra los métodos directos de FSO. Consulte la sección "Referencias" para obtener más información acerca de las técnicas del objeto de archivo .

El ejemplo de código siguiente demuestra estos métodos:

Código de VBScript
Dim objFSOSet objFSO = CreateObject("Scripting.FileSystemObject")

objFSO.MoveFile "c:\HowToDemoFile.txt", "c:\Temp\"
objFSO.CopyFile "c:\Temp\HowToDemoFile.txt", "c:\"

Código de JScript
var objFSO;objFSO = new ActiveXObject("Scripting.FileSystemObject");

objFSO.MoveFile("c:\\HowToDemoFile.txt", "c:\\Temp\\");
objFSO.CopyFile("c:\\Temp\\HowToDemoFile.txt", "c:\\");

Solución de problemas

  • Mensajes de error durante la creación de Scripting.FileSystemObject:

    Este problema probablemente se produce debido a los siguientes escenarios:

    • ScrObj.dll no se instaló en el equipo de implementación.
    • ScrObj.dll se ha eliminado accidentalmente.
    • ScrObj.dll se ha eliminado por error del registro COM.

    ScrObj.dll reside en la carpeta de <Directorio de instalación de Windows> \System32, forma parte de las bibliotecas de vínculos dinámicos (DLL) de sistema operativo. Por lo tanto, en equipos basados en Windows 2000, no puede eliminarse, al menos sin recurrir a medidas extremas que pueden dañar gravemente el sistema.
  • Mensajes de error al realizar las operaciones de manipulación de archivos:

    Si los discos formateados con el sistema de archivos NTFS, los usuarios del grupo Administrador tienen control sobre los permisos de seguridad para todas las unidades, carpetas y archivos. Especialmente en servidores Web, los administradores deben aplicar permisos de seguridad seguro para impedir el acceso ilegal a archivos e información. Cuando se diseña y se escribe una aplicación ASP que utiliza las técnicas de manipulación de archivos mencionadas anteriormente, se debe prestar atención especial a los permisos de seguridad para el sistema de archivos en los equipos de implementación para evitar errores relacionados con permisos de seguridad insuficientes.

Referencias

Para obtener más información acerca de scripting, consulte los siguientes sitios Web de MSDN:También puede consultar estos temas en el CD de MSDN de abril de 2001 en "Documentación de Platform SDK" en las siguientes carpetas:
Herramientas y objeto de Runtime\FileSystemObject de Scripting\Scripting\Scripting
Propiedades

Id. de artículo: 300982 - Última revisión: 22 ene. 2017 - Revisión: 2

Comentarios