トッカンソフトウェア

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


			


ページのトップへ戻る