Método OpenAsTextStream

Abre um arquivo especificado e retorna um objeto TextStream que pode ser usado para ler, gravar ou anexar ao arquivo.

Sintaxe

object.OpenAsTextStream([iomode, [format]])

Argumentos:

  • Object: Obrigatório. Sempre o nome de um objeto File.

  • Iomode: Opcional. Indica modo de entrada/saída. Pode ser uma de três constantes: ForReading, ForWriting ou ForAppending.

  • Format: Opcional. Indica o formato do arquivo aberto. Se omitido, o arquivo é aberto como Unicode por padrão.

    Note:

    O argumento Format está inativo e é mantido para imitar a sintaxe do VB Script. Ele não tem efeito. Todos os arquivos são criados no formato Unicode.

Configurações

O argumento iomode pode ter uma das seguintes configurações:

Table 11-35 Configuração do argumento Iomode

Constante Valor Descrição
ForReading 1 Abre um arquivo somente para leitura. Você não pode gravar neste arquivo.
ForWriting 2 Abre um arquivo para gravação.
ForAppending 8 Abre um arquivo e grava no final do arquivo.

Comentários

O método OpenAsTextStream fornece a mesma funcionalidade do método OpenTextFile do FileSystemObject. Além disso, o método OpenAsTextStream pode ser usado para gravar em um arquivo.

O código a seguir ilustra o uso do método OpenAsTextStream:

Exemplo 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."

Exemplo 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."

Exemplo 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."

Exemplo 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