0

vbscript で読みたいログ ファイルがあります。ファイルにはコマンドごとに 2 つの行があります。たとえば、コマンド自体と、前の行の確認応答のような次のコマンドです。

だから私は得る:

xxx,xxx,xxx, ,Blah - もう少し何とか

xxx,xxx,xxx, ,Blah Ack

ログファイルの一番下に移動し、「Ack」が含まれていない最初の行に到達するまでレーンごとに読み取り、その行を変数に入れて書き出したい.

私はそれのほとんどを機能させることができます.Ackを持たない行が表示されるまで、行ごとに戻って読み取る方法を理解することができますか?

誰にもアイデアはありますか?

これは、ファイルの最後に到達するために私が歌っているものです。

Const ForReading = 1
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("Y:\Selcall\logs\DEC-20130929.LOG", ForReading)

Do Until objFile.AtEndOfStream
  strNextLine = objFile.ReadLine
  If Len(strNextLine) > 0 Then
    strLine = strNextLine
  End If
Loop

objFile.Close

Wscript.Echo strLine
Wscript.Echo Right(strLine, Len(strLine) - 35)
4

2 に答える 2

1

技術的には、ファイルを前から順に読むことはできないため、ファイルを最初から読んで、キーワードを含まない最後の行を覚えておく必要がありますAck

Do Until objFile.AtEndOfStream
  strNextLine = objFile.ReadLine
  If InStr(strNextLine, "Ack") = 0 Then strLine = strNextLine
Loop

ループが終了すると、変数strLineには探している行が含まれます。

于 2013-09-29T09:44:04.503 に答える
0

FSO のTextStreamオブジェクトを使用して後方に移動または読み取ることはできません。ファイルを上から下に読み取り、各候補行を保存/上書きする必要があります。.Close の後、ストレージには最後の/望ましい候補が含まれます。

于 2013-09-29T09:45:21.840 に答える