Abre un archivo especificado y devuelve un objeto TextStream que se puede utilizar para leer, escribir o agregar en el archivo.
Sintaxis
object.OpenAsTextStream([iomode, [format]])
Argumentos:
Object: necesario. Siempre es el nombre de un objeto File.
Iomode: opcional. Indica el modo de entrada/salida. Puede ser una de estas tres constantes: ForReading, ForWriting o ForAppending.
Format: opcional. Indica el formato del archivo abierto. Si se omite, el archivo se abre como Unicode de forma predeterminada.
Note:
El argumento format está inactivo y se mantiene para imitar el comportamiento del script de VB. No tiene ningún efecto. Los archivos creados solo están en formato Unicode.
Configuración
El argumento iomode puede tener cualquiera de los siguientes valores:
Table 11-35 Valores del argumento iomode
| Constante | Valor | Descripción |
|---|---|---|
| ForReading | 1 | Abre un archivo solo para lectura. No puede escribir en este archivo. |
| ForWriting | 2 | Abre un archivo para escritura. |
| ForAppending | 8 | Abre un archivo y escribe al final del archivo. |
Observaciones
El método OpenAsTextStream proporciona la misma funcionalidad que el método OpenTextFile de FileSystemObject. Además, el método OpenAsTextStream se puede utilizar para escribir en un archivo.
El siguiente código muestra el uso del método OpenAsTextStream:
Ejemplo 1
Function WriteToFile(filepath, text)
Const ForWriting = 2
Dim fso, f, ts
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFile(filepath)
Set ts = f.OpenAsTextStream(ForWriting)
ts.Writeline text
ts.Close
End Function
' Usage
WriteToFile "C:\Path\To\Your\File.txt", "This is a test message."
Ejemplo 2:
Function AppendToFile(filepath, text)
Const ForAppending = 8
Dim fso, f, ts
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFile(filepath)
Set ts = f.OpenAsTextStream(ForAppending)
ts.WriteLine text
ts.Close
End Function
' Usage
AppendToFile "C:\Path\To\Your\File.txt", "This is additional text."
Ejemplo 3:
Function WriteUnicodeToFile(filepath, text)
Const ForWriting = 2
Const TristateTrue = -1
Dim fso, f, ts
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFile(filepath)
Set ts = f.OpenAsTextStream(ForWriting, TristateTrue)
ts.Writeline text
ts.Close
End Function
' Usage
WriteUnicodeToFile "C:\Path\To\Your\File.txt", "This is a Unicode test message."
Ejemplo 4:
Function ReadFromFile(filepath)
Const ForReading = 1
Dim fso, f, ts, content
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFile(filepath)
Set ts = f.OpenAsTextStream(ForReading)
Do While Not ts.AtEndOfStream
content = content & ts.ReadLine
Loop
ts.Close
ReadFromFile = content
End Function
' Usage
Dim fileContent
fileContent = ReadFromFile("C:\Path\To\Your\File.txt")
'Output: Content of the File