0

タブ制限されたデータの大きな塊を除外する必要があり、VBSCRIPT を使用してそれを行うことができました。

現在のファイルには、以下のデータがあります。

abcd9
efgh9
12349
0x11111
11111
22222
33333
44444
0x11112
55555
66666
77777
88888
0x11113

. . .

私の結果は

{
11111,
22222
}
{
33333,
44444
}
{
55555,
66666
}
{
77777,
88888
}

これは非常に困難な作業であり、解決策があれば非常に高く評価されます。

0x11111、0x11112、0x11113 はマーカー変数です。

前もって感謝します。

4

1 に答える 1

2

サンプル データが代表的なものである場合は、グループ化された正規表現を使用します。

  Dim sAll   : sAll       = goFS.OpenTextFile("..\data\17050037.txt").ReadAll
  Dim rePair : Set rePair = New RegExp
  rePair.Global    = True
  rePair.Multiline = True
  rePair.Pattern   = "^(\d+)\r\n^(\d+)\r\n"
  Dim oMTS   : Set oMTS   = rePair.Execute(sAll)
  Dim oMt
  For Each oMT IN oMTS
    WScript.Echo "{"
    WScript.Echo oMT.SubMatches(0) & ","
    WScript.Echo oMT.SubMatches(1)
    WScript.Echo "}"
  Next

出力:

{
11111,
22222
}
{
33333,
44444
}
{
55555,
66666
}
{
77777,
88888
}

追加した:

ライン ループを使用する場合は、次の方法を試してください。

Dim file  : Set file = goFS.OpenTextFile("..\data\17050037.txt")
Dim state : state = 0
Do Until file.AtEndOfStream
  Dim Line : Line = file.ReadLine
  Select Case state
    Case 1, 3
      WScript.Echo "{"
      WScript.Echo Line & ","
      state = state + 1
    Case 2, 4
      WScript.Echo Line
      WScript.Echo "}"
      state = state + 1
    Case Else
      If "0x" = Left(Line, 2) Then state = 1
  End Select
Loop
file.Close
于 2013-06-11T17:44:58.723 に答える