Hay dos categorías principales de control de 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);
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(); }
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(); }
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. |