如VBScript沒有本機排序,你就必須推出你自己分類,或者從朋友那裏得到一點幫助。
如果你的任務是要排序的輸入文件(逐字給出),以指定順序的輸出文件,sort.exe
是你的朋友:
Dim sIn : sIn = "..\data\in00.txt"
WScript.Echo readAllFromFile(sIn)
WScript.Echo "-----------"
Dim sCmd : sCmd = "sort /+19 " & qq(resolvePath(sIn))
Dim aRet : aRet = goWSLib.Run(sCmd)
If aRet(0) Then
' handle error
Else
WScript.Echo aRet(2)
End If
輸出:
================================================================
Liv1.HoleSize[0] = 22 Liv1.HoleX[0] = 250 Liv1.HoleY[0] = -55
Liv1.HoleSize[1] = 14 Liv1.HoleX[1] = 750 Liv1.HoleY[1] = 0
Liv1.HoleSize[2] = 22 Liv1.HoleX[2] = 900 Liv1.HoleY[2] = -55
-----------
Liv1.HoleSize[1] = 14 Liv1.HoleX[1] = 750 Liv1.HoleY[1] = 0
Liv1.HoleSize[0] = 22 Liv1.HoleX[0] = 250 Liv1.HoleY[0] = -55
Liv1.HoleSize[2] = 22 Liv1.HoleX[2] = 900 Liv1.HoleY[2] = -55
================================================================
如果某樣東西像這樣可以解決你的問題,就這麼說,我們可以在庫函數中討論支持代碼。
但是,如果你(要)解析(d)輸入文件轉換成二維數組,你可以得到的最好的朋友是一個disconnectes ADODB記錄:
Dim aData : aData = Split(Join(Array(_
"22 250 -55" _
, "14 750 0" _
, "22 900 -55" _
, "11 222 333" _
)))
Dim afData(3, 2)
Dim nRows : nRows = UBound(afData, 1)
Dim nCols : nCols = UBound(afData, 2)
Dim i, r, c
For i = 0 TO UBound(aData)
r = i \ nRows
c = i Mod (nCols + 1)
afData(r, c) = aData(i)
' WScript.Echo i, r, c, aData(i)
Next
For r = 0 To nRows
For c = 0 To nCols
WScript.StdOut.Write vbTab & afData(r, c)
Next
WScript.Echo
Next
WScript.Echo "-----------------"
Dim oRS : Set oRS = CreateObject("ADODB.Recordset")
For c = 0 To nCols
oRS.Fields.Append "Fld" & c, adInteger
Next
oRS.Open
For r = 0 To nRows
oRS.AddNew
For c = 0 To nCols
oRS.Fields(c).value = afData(r, c)
Next
oRS.UpDate
Next
oRS.Sort = "Fld0"
WScript.Echo oRS.GetString(adClipString, , vbTab, vbCrLf)
WScript.Echo "-----------------"
oRS.Sort = "Fld2"
WScript.Echo oRS.GetString(adClipString, , vbTab, vbCrLf)
輸出:
========================================
22 250 -55
14 750 0
22 900 -55
11 222 333
-----------------
11 222 333
14 750 0
22 250 -55
22 900 -55
-----------------
22 250 -55
22 900 -55
14 750 0
11 222 333
========================================
再說一遍:如果看起來很有希望,我們可以討論如何根據您的需求調整/簡化概念驗證代碼。
看起來像3個獨立的數組不是多維數組,它也不是vbscript(它可能是有效的js)什麼樣的vbscript數據結構是Liv1及其成員? –
道歉,我又收到腳本和張貼更多的信息,謝謝 –
嗨,你是正確的 有3個獨立的數組 開孔尺寸,HoleX而多孔, 的數據類型都是「真正的」數字 讀取當文本文件它以字符串形式進入,我轉換成實數。我正在努力尋找一種方法來排序這些數組,不幸的是我只有VBScript與 –