VBSの基本 - vbscript TextStreamオブジェクト
TextStreamオブジェクトは、テキストファイルにアクセスするためのオブジェクトで、FileSystemObjectの独立した補助オブジェクトですが、TextStreamオブジェクトを使う場合でも、FileSystemObjectオブジェクトまたはその補助オブジェクトの助けを借りて、TextStreamオブジェクトを作り、ディスクファイルの内容にアクセスしなければなりません。TextStreamのオブジェクトハンドルは、FileSystemObjectオブジェクトのCreateTextFile()とOpenTextFile()を使って取得することができます。
TextStreamオブジェクトのメソッドとプロパティを詳しく見てみましょう。
TextStream オブジェクトのメソッド
<テーブル メソッド 説明 閉じる() 開いているファイルを閉じる 読み込み(numchars) ファイルからnumchars文字を読み込む リードオール(ReadAll) ファイル全体を1つの文字列として読み込む リードライン() ファイルから1行を文字列として読み込む(キャリッジリターン、ラインフィードまで)。 スキップ(numchars) ファイルから読み込む際、numchars 文字を無視する SkipLine() ファイルから読み込むとき、次の行を無視する 書き込み(文字列) 文字列をファイルに書き込む string WriteLine(文字列) 文字列(オプション)と改行をファイルに書き込む WriteBlankLines(n) 改行数nをファイルに書き込む
Close、Write、WriteLine、WriteBlankLinesの使用について
メソッド名:Close()
説明 開いているファイルを閉じます
メソッド名:WriteLine(string)
説明 文字列string(オプション)と改行をファイルに書き込みます。
例
Dim strPath,strText
strPath = "C:\testing.txt"
strText = "This is Test !hello word ! "
'Call the function
Call CreateFile(strPath,strText)
Sub CreateFile(strPath,strText)
Dim objFso,objStream
'Create FileSystemObject object
Set objFso = CreateObject("Scripting.FileSystemObject")
'Use CreateTextFile(), to return a TextStream object handle
Set objStream = objFso.CreateTextFile(strPath,True)
'Three Write means: write characters in the text, write characters with line breaks, write 3 line breaks
objStream.Write(strText)
objStream.WriteLine(strText)
objStream.WriteBlankLines 3
'Close the TextStream object
objStream.Close
End Sub
Read、ReadAll、ReadLineの使用について
メソッド名 Read(numchars)
説明 TextStreamファイルから指定された文字数を読み込んで、結果の文字列を返します。
メソッド名 メソッド名: ReadAll()
説明 TextStreamファイル全体を読み込み、結果の文字列を返します。
メソッド名 メソッド名: ReadLine()
説明 TextStream ファイルから文字列全体を読み込み(次の行の文字まで)、その文字列を返します。
例
Call CreateFile("c:\test.txt", "This is Test ! " & vbCrLf & "hello word ! ")
Sub CreateFile(strPath,strText)
Dim objFso,objStream
'Create FileSystemObject object
Set objFso = CreateObject("Scripting.FileSystemObject")
'Use the FileSystemObject object CreateTextFile(), to return a TextStream object handle
Set objStream = objFso.CreateTextFile(strPath,True)
'Write characters
objStream.WriteLine(strText)
'Read string are: read the whole line, read all, read a specified number of characters
Msgbox (objStream.ReadLine)
Set objStream = objFso.OpenTextFile(strPath,1,true)
Msgbox (objStream.ReadAll)
Set objStream = objFso.OpenTextFile(strPath,1,true)
Msgbox (objStream.Read(9))
'Close the TextStream object
objStream.Close
End Sub
スキップ、SkipLineの使用について
メソッド名:Skip(numchars)
説明 TextStream ファイルを読み込む際に、指定された文字数をスキップする。
メソッド名:SkipLine()
説明 TextStream ファイルを読むとき、次の行をスキップします。
例
Dim strPath,strText
strPath = "C:\test.txt"
'Call the function
Call CreateFile(strPath)
Sub CreateFile(strPath)
Dim objFso,objStream
'Create FileSystemObject object
Set objFso = CreateObject ("Scripting.FileSystemObject")
'Use the FileSystemObject object CreateTextFile (), to return a TextStream object handle
Set objStream = objFso.CreateTextFile(strPath,True)
'Write characters in the text
objStream.Write "This is Test ! " & vbCrLf & "hello word ! "
'Open the file as read-only
Set objStream = objFso.OpenTextFile(strPath,1,true)
'Skip 5 characters when reading the file; or skip the current line and read the next line
objStream.Skip(5)
Msgbox objStream.ReadAll
Set objStream = objFso.OpenTextFile(strPath,1,true)
'Skip the first line
objStream.SkipLine
Msgbox objStream.ReadAll
'Close the TextStream object
objStream.Close
End Sub
TextStream オブジェクトのプロパティ
<テーブル
属性
説明
AtEndOfLine
ファイル位置ポインタがファイルの行末にあるとき、True を返します。
AtEndOfStream
ファイルロケーションポインタがファイルの終端にある場合、True を返します。
コラム
ファイル中の現在の文字の列番号を 1 から順に返します。
ライン
ファイル内の現在行の行番号を1"から順に返します。
AtEndOfLineとAtEndOfStreamの使い分け
両者の違いは
AtEndOfLine - テキストを現在の行の終わりまで読みます。
AtEndOfStream - テキスト全体の終わりまで読みます。
例
Dim strPath,strText
strPath = "C:\test.txt"
'Call the function
Call CreateFile(strPath)
Sub CreateFile(strPath)
Dim objFso,objStream,str
'Create FileSystemObject object
Set objFso = CreateObject ("Scripting.FileSystemObject")
'Open the file as read-only, or create it if it does not exist
Set objStream = objFso.OpenTextFile(strPath,1,true)
'If the current pointer is not at the end of the line, then read the text content
Do While objStream.AtEndOfLine <> true
str = str + objStream.Read(1)
Loop
msgbox str
str = ""
Set objStream = objFso.OpenTextFile(strPath,1,true)
'If the current pointer is not at the end of the text, then read the text content
Do While objStream.AtEndOfStream <> true
str = str + objStream.Read(1)
Loop
MsgBox str
'Close the TextStream object
objStream.Close
End Sub
列と行の使用
例
Call TestTextStream("c:\test.txt")
Sub TestTextStream(strPath)
Dim objFso,objTStream,str
Set objFso = CreateObject("Scripting.FileSystemObject")
'Open the file as read-only
Set objTStream = objFso.OpenTextFile(strPath,1)
'If the current pointer is not at the end of the entire document, read all the contents of the text
Do While objTStream.AtEndOfStream <> true
objTStream.ReadAll
str = str + "Total" & objTStream.Line & "Line data, the last column number where the cursor is: " & objTStream.Column & vbCrLf
Loop
'Print message
MsgBox str
End Sub
テキストの読み上げ例です。
テキストから最終行のデータを読み取るにはどうすればよいですか?
Dim Fso,MyFile
Dim strLine
'Create FileSystemObject object
Set Fso = CreateObject("Scripting.FileSystemObject")
'Open the file as read-only
Set MyFile = Fso.OpenTextFile("C:\test.txt",1)
'Until you reach the end of the file
Do Until MyFile.AtEndOfStream
'Read the entire current line of data
strLine = MyFile.
Loop
MyFile.Close
MsgBox strLine
最終行のテキスト(ファイル末尾に空白行がある)を読むにはどうしたらよいですか?
Dim Fso,MyFile
Dim strLine
'Create FileSystemObject object
Set Fso = CreateObject("Scripting.FileSystemObject")
'Open the file as read-only
Set MyFile = Fso.OpenTextFile("C:\test.txt",1)
Do Until MyFile.AtEndOfStream
'Read the current whole line of string
strNextLine = MyFile.ReadLine
'Determine if the whole line read is a blank string
If Len(strNextLine) > 0 Then
'If it is not blank, then assign a value
strLine = strNextLine
End If
Loop
MyFile.Close
MsgBox strLine
指定した行の内容を読み取る
MsgBox TestTextStream("c:\test.txt",1)
Function TestTextStream(strPath,IntLine)
Dim Fso,MyFile
Set Fso = CreateObject("Scripting.FileSystemObject")
'Open the file as read-only
Set MyFile = Fso.OpenTextFile(strPath,1)
'If the current pointer is not at the end of the entire document, read the entire line of text
Do Until MyFile.AtEndOfStream
TestTextStream = MyFile.
IntLine = IntLine - 1
'determine whether the cursor has reached the specified line, to exit the function
If IntLine = 0 Then
Exit Function
End If
Loop
End Function
以上で、この記事を必要とする方々のために、この記事を終わります。
関連
-
vbを使用してコンピュータのアクティビティログを監視する方法
-
ファイルをドラッグ&ドロップするとファイルパスが表示される vbs コード
-
指定されたファイルを指定されたディレクトリにバックアップし、日付で名前を変更するVbsコード
-
VBSの基本 Errオブジェクト
-
VBSの基本 - ループ (for, do, while)
-
コンピュータのオン/オフ時間を問い合わせるためのvbsコード
-
VBSがWMIを呼び出してハードディスクのファイルをトラバースしてカウントする
-
ファイルの作成時刻、最終修正時刻、最終アクセス時刻を取得する vbscript メソッド
-
Iisftpdr.vbsを使用してFTP仮想ディレクトリをリストアップ(リモートおよびローカルに対応)
-
Iisftp.vbsを使ったFTPサイトのリストアップ方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ActiveXコンポーネントはオブジェクトを作成できません: dm.dmsoft code: 800A01AD
-
VBSは現在のスクリプトがあるフォルダーを開く
-
VBSによるファイル名の一括変更と操作前のオリジナルファイルのバックアップ
-
VBSを使用してHostsファイルのワンクリック設定コードを実装する
-
vbsによるテキストループの読み込み
-
VBSスクリプトによる辞書、動的配列、キュー、スタックの実装コード
-
vbs+batでnodejsアプリケーションをバックグラウンドで自動実行するウインドウ。
-
vbでのなりすましシャットダウンプログラム
-
MSScriptControlの使用例です。
-
VBSのInStrRev関数の第3パラメータ(Start)の使用に関する注意点