指定されたファイルを開き、ファイルの読取り、ファイルへの書込みまたはファイルへの追加に使用できるTextStreamオブジェクトを戻します。
構文
object.OpenAsTextStream([iomode, [format]])
引数:
Object: 必須。常にFileオブジェクトの名前。
Iomode: オプション。入力/出力モードを示します。ForReading、ForWritingまたはForAppendingの3つの定数のいずれかを指定できます。
Format: オプション。開いたファイルのフォーマットを示します。省略すると、デフォルトでファイルはUnicodeとして開きます。
Note:
Format引数は休止状態であり、VBスクリプトの動作と似せるために保持されています。効果はありません。作成されるファイルはすべてUnicodeフォーマットのみです。
設定
iomode引数には、次のいずれかの設定を指定できます:
Table 11-35 Iomode引数の設定
| 定数 | 値 | 説明 |
|---|---|---|
| ForReading | 1 | 読取り専用でファイルを開きます。このファイルへの書込みはできません。 |
| ForWriting | 2 | 書込み用にファイルを開きます。 |
| ForAppending | 8 | ファイルを開き、ファイルの末尾に書き込みます。 |
備考
OpenAsTextStreamメソッドは、FileSystemObjectのOpenTextFileメソッドと同じ機能を提供します。さらに、OpenAsTextStreamメソッドを使用するとファイルに書き込むことができます。
次のコードは、OpenAsTextStreamメソッドの使用方法を示しています:
例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."
例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."
例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."
例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