Reconstruct an array from _ArrayToString() or _SQLite_Display2DResult()
#include <Array.au3>
_ArrayFromString ( $sArrayStr [, $sDelim_Col = "|" [, $sDelim_Row = @CRLF [, $bForce2D = False [, $iStripWS = $STR_STRIPLEADING + $STR_STRIPTRAILING]]]] )
$sArrayStr | A string formated by _ArrayToString() or _SQLite_Display2DResult()** |
$sDelim_Col | [optional] default is "|" |
$sDelim_Row | [optional] default is @CRLF |
$bForce2D | [optional] default is False. True will force a 2 dimensional array even if 1 dimensional. |
$iStripWS | [optional] default is 3. This is the flag for StringStripWS(). Set to zero to disable. |
Success: | An array |
Failure: | Set @error Flag to non zero. |
** for _SQLite_Display2DResult(), $sDelim_Col must be declared.
Note that _ArrayToString() will return an empty string when passed any of the following array formats with no content - [0], [1], [0][0], [1][0], [0][1], [1][1]. This function cannot therefore distinguish between these cases and returns as default a single element array with no content: either [1] or [1][1] depending on the $bForce2D flag.
_ArrayToString, _SQLite_Display2DResult
#include <Array.au3>
#include <Debug.au3>
#include <MsgBoxConstants.au3>
Example()
Func Example()
Local $aArrayFromText = _ArrayFromString(" 1|2 ") ; by default, LEADING and TRAILING
_DebugArrayDisplay($aArrayFromText, UBound($aArrayFromText, $UBOUND_DIMENSIONS) & "D") ; spaces are removed.
$aArrayFromText = _ArrayFromString("1|2", Default, Default, True) ; force 2D array
_DebugArrayDisplay($aArrayFromText, UBound($aArrayFromText, $UBOUND_DIMENSIONS) & "D")
$aArrayFromText = _ArrayFromString("1|2" & @CRLF & "3|4")
_DebugArrayDisplay($aArrayFromText, UBound($aArrayFromText, $UBOUND_DIMENSIONS) & "D")
EndFunc ;==>Example
#include <Array.au3>
#include <Debug.au3>
#include <MsgBoxConstants.au3>
#include <SQLite.au3>
#include <SQLite.dll.au3>
Example()
Func Example()
Local $aResult, $iRows, $iColumns, $iRval, $sText, $aArrayFromText
_SQLite_Startup()
If @error Then
MsgBox($MB_SYSTEMMODAL, "SQLite Error", "SQLite.dll Can't be Loaded!")
Exit -1
EndIf
ConsoleWrite("_SQLite_LibVersion=" & _SQLite_LibVersion() & @CRLF)
_SQLite_Open() ; Open a :memory: database
If @error Then
MsgBox($MB_SYSTEMMODAL, "SQLite Error", "Can't Load Database!")
Exit -1
EndIf
; Example Table
; Name | Age
; -----------------------
; Alice | 43
; Bob | 28
; Cindy | 21
If Not _SQLite_Exec(-1, "CREATE TEMP TABLE persons (Name, Age);" & _
"INSERT INTO persons VALUES ('Alice','43');" & _
"INSERT INTO persons VALUES ('Bob','28');" & _
"INSERT INTO persons VALUES ('Cindy','21');") = $SQLITE_OK Then _
MsgBox($MB_SYSTEMMODAL, "SQLite Error", _SQLite_ErrMsg())
; Query
$iRval = _SQLite_GetTable2D(-1, "SELECT * FROM persons;", $aResult, $iRows, $iColumns)
If $iRval = $SQLITE_OK Then
ConsoleWrite('--- --- --- ---' & @CRLF)
_SQLite_Display2DResult($aResult)
ConsoleWrite('--- --- --- ---' & @CRLF)
; demo using _SQLite_Display2DResult()
$sText = _SQLite_Display2DResult($aResult, Default, True, @TAB)
ConsoleWrite($sText & @CRLF) ; ..say, you save this in a log file ...
$aArrayFromText = _ArrayFromString($sText, @TAB) ; ... then rebuild the array
_DebugArrayDisplay($aArrayFromText, "from _SQLite_Display2DResult()")
ConsoleWrite('--- --- --- ---' & @CRLF)
; demo using _ArrayToString()
$sText = _ArrayToString($aResult)
ConsoleWrite($sText & @CRLF)
$aArrayFromText = _ArrayFromString($sText)
_DebugArrayDisplay($aArrayFromText, "from _ArrayToString()")
ConsoleWrite('--- --- --- ---' & @CRLF)
Else
MsgBox($MB_SYSTEMMODAL, "SQLite Error: " & $iRval, _SQLite_ErrMsg())
EndIf
_SQLite_Close()
_SQLite_Shutdown()
EndFunc ;==>Example