-1

私はvbsが初めてで、質問があります。var varname = "variable"; という変数の js ファイルがあります。各行で。vbs の引用符内のすべての配列を作成したいと考えています。これを機能させる方法がわかりません。

' Sample vbs
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("path", ForReading)

Const ForReading = 1

Dim arrFileLines()
i = 0
Do Until objFile.AtEndOfStream
Redim Preserve arrFileLines(i)
arrFileLines(i) = objFile.ReadLine
i = i + 1
Loop
objFile.Close

'Then you can iterate it like this
For Each strLine in arrFileLines
leftquote = InStr(strLine,"""")
rightquote = InStrRev(strLine,"""")
str=CStr(strLine)
leng = rightquote-leftquote
WScript.Echo Mid(str,leftquote+1,leng)


Next

ここにjsがあります

// Sample js
var a = new Array();
a[0] = "1";
a[1] = "2";
a[2] = "3";
a[3] = "4";
4

1 に答える 1

0

RegExp を使用して、ファイルのコンテンツ全体の二重引用符の間のデータを抽出します。コード内:

  Dim goFS : Set goFS = CreateObject( "Scripting.FileSystemObject" )
  Dim reCut : Set reCut = New RegExp
  reCut.Global = True
  reCut.Pattern = """([^""]+)"""
  Dim sAll : sAll = goFS.OpenTextFile("..\data\sample.js").ReadAll()
  WScript.Echo sAll
  Dim oMTS : Set oMTS = reCut.Execute(sAll)
  If 0 = oMTS.Count Then
     WScript.Echo "parse error"
  Else
     ReDim aAll(oMTS.Count - 1)
     Dim i
     For i = 0 To UBound(aAll)
         aAll(i) = oMTS(i).SubMatches(0) ' or: aAll(i) = CStr(oMTS(i).SubMatches(0))
     Next
     WScript.Echo Join(aAll, ", ")
  End If

出力:

// Sample js
var a = new Array();
a[0] = "1";
a[1] = "2";
a[2] = "3";
a[3] = "4";

1, 2, 3, 4

このアプローチにより、あなたとあなたのコンピューターのリソースを

  1. 行の不要な配列を作成する (行 i を処理するときに行 j にアクセスする必要はありません)
  2. 独自の「パーサー」を展開する
于 2012-11-19T08:17:31.280 に答える