VBScript – Trabajar con archivos
Written by lopezatienza on 29/12/2008 – 15:34 -
Trabajar con archivos VBScript
Hay dos categorías principales de control de archivos:
- Crear, agregar o quitar datos y leer archivos
- Mover, copiar y eliminar 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
fso = CreateObject("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
fso = CreateObject("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
fso = CreateObject("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
fso = CreateObject("Scripting.FileSystemObject")
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
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
fso = CreateObject("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()
End Sub
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
fso = CreateObject("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")
End Sub
Tags: Visual Basic
Posted in VBScript | 7 Comments »
junio 8th, 2010 at 22:13
muy bueno pero como lo hago con un texto en un servidor web ??
junio 10th, 2010 at 07:58
Hola Alex.
¿Te refieres a acceder a ficheros en una página web?
Explícate a ver si así puedo ayudarte.
Un saludo.
noviembre 2nd, 2010 at 15:49
No me funciona cuando creo un archivo con extension prueba.vbs, en xp o win2k3 server. estare haciendo algo mal?
noviembre 2nd, 2010 at 15:50
Y me gustaria saber, cual es mas confiable de un .bat o un vbs, ya que hago todos mis scripts en .bat, pero me gustaria cambiarlo a vbs.
Recomendaciones
noviembre 2nd, 2010 at 19:18
Hola kj, ¿Que es lo que no te funciona?
Todo lo que puedas hacer con un Batch-File puedes hacerlo con un vbs, además de mucho más.
Visual Basic Script es una light version de Visual Basic Language y se trata de un lenguaje de script orientado a objetos, con todo lo que ello implica.
Mientras que los Batch-Files solo funciona en DOS Mode (Command Prompt), vbs es usado además de esto para aplicaciones independientes y programación de sitios Web.
Bueno espero haberte ayudado.
Un saludo.
mayo 13th, 2011 at 21:54
buenas tardes., porfavor necesito ayuda urgente, necesito hacer un script en vbscripst que lea todos los archivos .txt q estan e un directorio y luego si encuntra lineas iguales , cree un nuevo txt donde haga una resumen de cuantas veces encontro esa linea algo como esto
juan 12:15
juan 10:20
juan 12:23
y muestre asi en el nuevo .txt
juan 3
mejor dicho que omita en todas las lineas la hora y el ip, q solo tome el usuario, pero que muestre toda esa liena exceptuando esos datos
mayo 13th, 2011 at 22:03
a mi correo es adberik2005@hotmail.com