Biblioteca de tiempo de ejecución de Scripting  

Trabajar con archivos

Hay dos categorías principales de control de archivos:

Crear archivos

Hay tres formas de crear un archivo de texto vacío (algunas veces se le llama "secuencia de texto").

La primera forma es utilizar el método CreateTextFile. El ejemplo siguiente demuestra cómo crear un archivo de texto utilizando el método CreateTextFileMethod:

[VBScript]
Dim fso, f1
Set fso = CreateObject("Scripting.FileSystemObject")
Set f1 = fso.CreateTextFile("c:\archprue.txt", True)
[JScript]
var fso, f1;
fso = new ActiveXObject("Scripting.FileSystemObject");
f1 = fso.CreateTextFile("c:\\archprue.txt", true);

La segunda forma de crear un archivo de texto es utilizar el método OpenTextFile del objeto FileSystemObject con el indicador ForWriting establecido.

[VBScript]
Dim fso, ts
Const ForWriting = 2
Set fso = CreateObject("Scripting. FileSystemObject")
Set ts = fso.OpenTextFile("c:\prueba.txt", ForWriting, True)
[JScript]
var fso, ts;
var ForWriting= 2;
fso = new ActiveXObject("Scripting.FileSystemObject");
ts = fso.OpenTextFile("c:\\prueba.txt", ForWriting, true);

Una tercera forma de crear un archivo de texto es utilizar el método OpenAsTextStream con el indicador ForWriting establecido.

[VBScript]
Dim fso, f1, ts
Const ForWriting = 2
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CreateTextFile ("c:\prueba1.txt")
Set f1 = fso.GetFile("c:\prueba1.txt")
Set ts = f1.OpenAsTextStream(ForWriting, True)
[JScript]
var fso, f1, ts;
var ForWriting = 2;
fso = new ActiveXObject("Scripting.FileSystemObject");
fso.CreateTextFile ("c:\\prueba1.txt");
f1 = fso.GetFile("c:\\prueba1.txt");
ts = f1.OpenAsTextStream(ForWriting, true);

Agregar datos al archivo

Una vez creado el archivo de texto, agregue datos al archivo utilizando los tres pasos siguientes:

Abrir el archivo de texto.

Escribir los datos.

Cerrar el archivo.

Para abrir un archivo existente, utilice el método OpenTextFile del objeto FileSystemObject o bien el método OpenAsTextStream del objeto File.

Para escribir datos al archivo de texto abierto, utilice los métodos Write, WriteLine o WriteBlankLines del objeto TextStream, según las tareas esquematizadas en la tabla siguiente.

Tarea Método
Escribir datos en un archivo de texto abierto sin un carácter de nueva línea a continuación. Write
Escribir datos en un archivo de texto abierto con un un carácter de nueva línea a continuación. WriteLine
Escribir una o más líneas en blanco en un archivo de texto abierto. WriteBlankLines

Para cerrar un archivo abierto, utilice el método Close del objeto TextStream.

Nota   El carácter de nueva línea contiene un carácter o caracteres (según el sistema operativo) para avanzar el cursor al principio de la línea siguiente (retorno de carro/avance de línea). Tenga en cuenta que el final de algunas cadenas puede tener ya dichos caracteres no imprimibles.

El ejemplo siguiente demuestra cómo abrir un archivo, utilizar los tres métodos write para agregar datos al archivo y, a continuación, cerrar el archivo:

[VBScript]
Sub CreateFile()
   Dim fso, tf
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set tf = fso.CreateTextFile("c:\archprue.txt", True)
   ' Escribir una línea con un carácter nueva línea.
   tf.WriteLine("Probando 1, 2, 3.") 
   ' Escribir tres caracteres de nueva línea al archivo.      
   tf.WriteBlankLines(3) 
   ' Escribir una línea.
   tf.Write ("Esto es una prueba.") 
   tf.Close
End Sub
[JScript]
function CreateFile()
{
   var fso, tf;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   tf = fso.CreateTextFile("c:\\archprue.txt", true);
   // Escribir una línea con un carácter de nueva línea.
   tf.WriteLine("Probando 1, 2, 3.") ;
   // Escribir tres caracteres de nueva línea en el archivo.      
   tf.WriteBlankLines(3) ;
   // Escribir una línea.
   tf.Write ("Esto es una prueba.");
   tf.Close();
}

Leer archivos

Para leer datos desde un archivo de texto, utilice los métodos Read, ReadLine o ReadAll del objeto TextStream. La tabla siguiente describe que método utilizar para diversas tareas.

Tarea Método
Leer un número específico de caracteres de un archivo. Read
Leer una línea entera (hasta, pero sin incluir, el carácter de nueva línea). ReadLine
Leer el contenido completo de un archivo de texto. ReadAll

Si utiliza los métodos Read o ReadLine y desea saltar un grupo de datos en particular, utilice los métodos Skip o SkipLine. El texto resultante de los métodos de lectura se almacena en una cadena que se puede mostrar en un control, analizar con funciones de cadena (como Left, Right y Mid), concatenar, etc.

El ejemplo siguiente demuestra cómo abrir un archivo, escribir en él y después, leer desde él:

[VBScript]
Sub ReadFiles
   Dim fso, f1, ts, s
   Const ForReading = 1
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f1 = fso.CreateTextFile("c:\archprue.txt", True)
   ' Escribir una línea.
   Response.Write "Escribir archivo <br>"
   f1.WriteLine "Hola a todos"
   f1.WriteBlankLines(1)
   f1.Close
   ' Leer los contenidos del archivo.
   Response.Write "Leer archivo <br>"
   Set ts = fso.OpenTextFile("c:\archprue.txt", ForReading)
   s = ts.ReadLine
   Response.Write "Contenido del archivo= '" & s & "'"
   ts.Close
End Sub
[JScript]
function ReadFiles()
{
   var fso, f1, ts, s;
   var ForReading = 1;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   f1 = fso.CreateTextFile("c:\\archprue.txt", true);
   // Escribir una línea.
   Response.Write("Escribir archivo <br>");
   f1.WriteLine("Hola a todos");
   f1.WriteBlankLines(1);
   f1.Close();
   // Leer los contenidos del archivo.
   Response.Write("Leer archivo <br>");
   ts = fso.OpenTextFile("c:\\archprue.txt", ForReading);
   s = ts.ReadLine();
   Response.Write("Contenido del archivo= '" + s + "'");
   ts.Close();
}

Mover, copiar y eliminar archivos

El modelo de objetos FSO puede mover, copiar y eliminar archivos con dos métodos distintos como se describe en la tabla siguiente.

Tarea Método
Mover un archivo File.Move o FileSystemObject.MoveFile
Copiar un archivo File.Copy o FileSystemObject.CopyFile
Eliminar un archivo File.Delete o FileSystemObject.DeleteFile

El siguiente ejemplo crea un archivo de texto en el directorio raíz de la unidad C, escribe alguna información en él, lo mueve a un directorio llamado \tmp, realiza una copia de él en un directorio llamado \temp y, a continuación, elimina las copias en ambos directorios.

Para ejecutar el ejemplo siguiente, cree directorios llamados \tmp y \temp en el directorio raíz de la unidad C:

[VBScript]
Sub ManipFiles
   Dim fso, f1, f2, s
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f1 = fso.CreateTextFile("c:\archprue.txt", True)
   Response.Write "Escribir archivo <br>"
   ' Escribir una línea.
   f1.Write ("Esto es una prueba.")
   ' Cerrar el archivo para la escritura.
   f1.Close
   Response.Write "Mover archivo a c:\tmp <br>"
   ' Obtener un identificador para el archivo en la raíz de C:\.
   Set f2 = fso.GetFile("c:\archprue.txt")
   ' Mover el archivo al directorio \tmp.
   f2.Move ("c:\tmp\archprue.txt")
   Response.Write "Copiar archivo a c:\temp <br>"
   ' Copiar el archivo a \temp.
   f2.Copy ("c:\temp\archprue.txt")
   Response.Write "Eliminar archivos <br>"
   ' Obtener identificadores para la ubicación actual de los archivos.
   Set f2 = fso.GetFile("c:\tmp\archprue.txt")
   Set f3 = fso.GetFile("c:\temp\archprue.txt")
   ' Eliminar los archivos.
   f2.Delete
   f3.Delete
   Response.Write "Terminado"
End Sub
[JScript]
function ManipFiles()
{
   var fso, f1, f2, s;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   f1 = fso.CreateTextFile("c:\\archprue.txt", true);
   Response.Write("Escribir archivo <br>");
   // Escribir una línea.
   f1.Write("Esto es una prueba.");
   // Cerrar el archivo para la escritura.
   f1.Close();
   Response.Write("Mover archivo a c:\\tmp <br>");
   // Obtener un identificador para el archivo en la raíz de C:\.
   f2 = fso.GetFile("c:\\archprue.txt");
   // Mover el archivo al directorio \tmp.
   f2.Move ("c:\\tmp\\archprue.txt");
   Response.Write("Copiar archivo a c:\\temp <br>");
   // Copiar el archivo a \temp.
   f2.Copy ("c:\\temp\\archprue.txt");
   Response.Write("Eliminar archivos <br>");
   // Obtener identificadores para la ubicación actual de los archivos.
   f2 = fso.GetFile("c:\\tmp\\archprue.txt");
   f3 = fso.GetFile("c:\\temp\\archprue.txt");
   // Eliminar los archivos.
   f2.Delete();
   f3.Delete();
   Response.Write("Terminado");
}
Ayuda de Javascript y Vbscript para Javascripts.astalaweb.com.