#include #include #Region ### START Koda GUI section ### Form= $Form1 = GUICreate("Form1", 615, 437, 192, 124) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### #include #include #include #include Local $sFilePath = @ScriptDir & "\InstallSoftware.txt" Local $sFileData = FileRead($sFilePath) Local $sHeader = FileReadLine($sFilePath, 1) Local $iColumn1 = StringInStr($sHeader, "Name") - 1 Local $iColumn2 = StringInStr($sHeader, "Version") - $iColumn1 - 1 Local $iColumn3 = StringLen($sHeader) - $iColumn1 - $iColumn2 - 1 Local $aFileData1D = StringRegExp($sFileData, "(.{" & $iColumn1 & "})(.{" & $iColumn2 & "})(.{" & $iColumn3 & "})", 3) Local $aFileData2D = _Array1DTo2D($aFileData1D, 3) Local $iSearch = _ArraySearch($aFileData2D, "Cisco AnyConnect Secure Mobility Client", 0, 0, 0, 1, 1, 1) MsgBox(4096, "Result", "Name : " & $aFileData2D[$iSearch][1] & @CRLF & "Version : " & $aFileData2D[$iSearch][2]) _ArrayDisplay($aFileData2) ; #FUNCTION# ==================================================================================================================== ; Name ..........: _Array1DTo2D ; Description ...: Transforms a 1D to a 2D array. ; Syntax ........: _Array1DTo2D($avArray, $iCols[, $iStart = 0[, $iEnd = 0[, $iFlag = 0]]]) ; Parameters ....: $avArray - Array to modify. ; $iCols - Number of columns to transform the array to. ; $iStart - [optional] Index of array to start the transformation. Default is the first element. ; $iEnd - [optional] Index of array to stop the transformation. Default is the last element. ; $iFlag - [optional] If set to 1, the array size must to a multiple of $iCols. Default is 0. ; Return values .: Success : Returns a 2D array ; Failure : Returns 0 and sets @error to : ; 1 - $aArray is not an array ; 2 - $iStart is greater than $iEnd ; 3 - $aArray is not a 1D array ; 4 - $aArray size is not a multiple of $iCols ; Author ........: jguinch ; =============================================================================================================================== Func _Array1DTo2D($avArray, $iCols, $iStart = 0, $iEnd = 0, $iFlag = 0) If $iStart = Default OR $iStart < 0 Then $iStart = 0 If $iEnd = Default Then $iEnd = 0 If NOT IsArray($avArray) Then Return SetError(1, 0, 0) If UBound($avArray, 0) <> 1 Then Return SetError(3, 0, 0) Local $iUBound = UBound($avArray) - 1 If $iEnd < 1 Then $iEnd = $iUBound If $iEnd > $iUBound Then $iEnd = $iUBound If $iStart > $iEnd Then Return SetError(2, 0, 0) Local $iNbRows = ($iEnd - $iStart + 1) / $iCols If $iFlag AND IsFloat($iNbRows) Then Return SetError(2, 0, 0) Local $aRet[ Ceiling($iNbRows) ][$iCols] Local $iCol = 0, $iRow = 0 For $i = $iStart To $iEnd If $iCol = $iCols Then $iCol = 0 $iRow += 1 EndIf $aRet[$iRow][$iCol] = $avArray[$i] $iCol += 1 Next Return $aRet EndFunc