WSH テキストファイル編集
テキストファイルの読み書きについて書いていきます。テキストファイルの読み込み
Dim objFSO
Dim objFile
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
'ファイルを開きます。引数はファイルパス,モード,作成可否です
'モード:1 読み込み専用, 2 書き込み専用, 8 ファイル追記
'作成可否:true 存在しない場合、作成, false 存在しない場合、エラー
Set objFile = objFSO.OpenTextFile("C:\work\wsh\test\aa.txt", 1, False)
Do Until objFile.AtEndOfStream
'1行毎の処理
WScript.Echo objFile.ReadLine
Loop
'ファイルを閉じます
objFile.Close
Set objFile = Nothing
Set objFSO = Nothing
テキストファイルの書き込み
Dim objFSO
Dim objFile
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
'ファイルを開きます。引数はファイルパス,モード,作成可否です
'モード:1 読み込み専用, 2 書き込み専用, 8 ファイル追記
'作成可否:true 存在しない場合、作成, false 存在しない場合、エラー
Set objFile = objFSO.OpenTextFile("C:\work\wsh\test\aa.txt", 2, True)
'改行なしはWrite
objFile.Write "改行なし"
'改行ありはWriteLine
objFile.WriteLine "改行あり"
'ファイルを閉じます
objFile.Close
Set objFile = Nothing
Set objFSO = Nothing
テキストファイルの追記
Dim objFSO
Dim objFile
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
'ファイルを開きます。引数はファイルパス,モード,作成可否です
'モード:1 読み込み専用, 2 書き込み専用, 8 ファイル追記
'作成可否:true 存在しない場合、作成, false 存在しない場合、エラー
Set objFile = objFSO.OpenTextFile("C:\work\wsh\test\aa.txt", 8, True)
objFile.WriteLine "ファイルに追加されます"
'ファイルを閉じます
objFile.Close
Set objFile = Nothing
Set objFSO = Nothing
UTF8のテキストファイルの読み込み
Dim objADS
Set objADS = WScript.CreateObject("ADODB.Stream")
'文字コードを指定
objADS.Charset = "UTF-8"
'Stream オブジェクトを開く
objADS.Open
'ファイルを開く
objADS.LoadFromFile ("C:\work\wsh\test\UTF8.txt")
Do While Not objADS.EOS
'1行毎の処理
WScript.Echo objADS.ReadText(-2)
Loop
'全行を取得する場合は-1を指定
'WScript.Echo objADS.ReadText(-1)
'Stream オブジェクトを閉じる
objADS.Close
Set objADS = Nothing
UTF8のテキストファイルの書き込み(BOMなし)
Dim objADS,strWork
Set objADS = WScript.CreateObject("ADODB.Stream")
'文字コードを指定
objADS.Charset = "UTF-8"
'テキストを指定( 1 はバイナリ)
objADS.type = 2
'Stream オブジェクトを開く
objADS.Open
'1行書き込み( 0 は改行なし)
objADS.WriteText "1行目", 1
objADS.WriteText "2行目", 1
'BOMを読み飛ばし、ファイルデータをバイナリで取得
objADS.Position = 0
objADS.Type = 1
objADS.Position = 3
strWork = objADS.Read()
'一旦、Stream オブジェクトを閉じる
objADS.Close
Set objADS = WScript.CreateObject("ADODB.Stream")
'バイナリで開き直す
objADS.Type = 1
objADS.Open()
'BOMを読み飛ばしたデータを書き込み
objADS.Write(strWork)
'ファイルが存在しても上書き( 1 はファイルが存在した場合にエラー)
objADS.SaveToFile "C:\work\wsh\test\UTF8.txt", 2
'Stream オブジェクトを閉じる
objADS.Close
Set objADS = Nothing
UTF8のテキストファイルの書き込み(BOMあり)
Dim objADS
Set objADS = WScript.CreateObject("ADODB.Stream")
'文字コードを指定
objADS.Charset = "UTF-8"
'テキストを指定( 1 はバイナリ)
objADS.type = 2
'Stream オブジェクトを開く
objADS.Open
'1行書き込み( 0 は改行なし)
objADS.WriteText "1行目", 1
objADS.WriteText "2行目", 1
'ファイルが存在しても上書き( 1 はファイルが存在した場合にエラー)
objADS.SaveToFile "C:\work\wsh\test\UTF8.txt", 2
'Stream オブジェクトを閉じる
objADS.Close
Set objADS = Nothing
ページのトップへ戻る