Rekonstruieren eines Arrays aus _ArrayToString() oder _SQLite_Display2DResult()
#include <Array.au3>
_ArrayFromString ( $sArrayStr [, $sDelim_Col = "|" [, $sDelim_Row = @CRLF [, $bForce2D = False [, $iStripWS = $STR_STRIPLEADING + $STR_STRIPTRAILING]]]] )
$sArrayStr | Ein String, formatiert durch _ArrayToString() oder _SQLite_Display2DResult()** |
$sDelim_Col | [optional] Standard ist "|" |
$sDelim_Row | [optional] Standard ist @CRLF |
$bForce2D | [optional] Standard ist False. True erzwingt ein 2 dimensionales Array, auch wenn es 1 dimensional ist. |
$iStripWS | [optional] Standard ist 3. Dies ist das Flag für StringStripWS(). Zum Deaktivieren auf Null setzen. |
Erfolg: | Ein Array |
Fehler: | Setzt das @error Flag auf ungleich null. |
** für _SQLite_Display2DResult() muss $sDelim_Col deklariert werden.
Es ist zu beachten, dass _ArrayToString() einen leeren String zurückgibt, wenn eines der folgenden Array-Formate ohne Inhalt übergeben wird - [0], [1], [0][0], [1][0], [0][1], [1][1]. Diese Funktion kann daher nicht zwischen diesen Fällen unterscheiden und gibt als Standard ein einzelelementiges Array ohne Inhalt zurück: entweder [1] oder [1][1], abhängig vom $bForce2D-Flag.
_ArrayToString, _SQLite_Display2DResult
#include <Array.au3>
#include <Debug.au3>
#include <MsgBoxConstants.au3>
Example()
Func Example()
Local $aArrayFromText = _ArrayFromString(" 1|2 ") ; standardmäßig, FÜHREND und NACHFOLGEND
_DebugArrayDisplay($aArrayFromText, UBound($aArrayFromText, $UBOUND_DIMENSIONS) & "D") ; Leerzeichen werden entfernt.
$aArrayFromText = _ArrayFromString("1|2", Default, Default, True) ; erzwingt ein 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 Fehler", "SQLite.dll konnte nicht geladen werden!")
Exit -1
EndIf
ConsoleWrite("_SQLite_LibVersion=" & _SQLite_LibVersion() & @CRLF)
_SQLite_Open() ; Öffnet eine :memory: Datenbank
If @error Then
MsgBox($MB_SYSTEMMODAL, "SQLite Fehler", "Datenbank konnte nicht geladen werden!")
Exit -1
EndIf
; BeispielTabelle
; Name | Alter
; -----------------------
; 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 Fehler", _SQLite_ErrMsg())
; Abfrage
$iRval = _SQLite_GetTable2D(-1, "SELECT * FROM persons;", $aResult, $iRows, $iColumns)
If $iRval = $SQLITE_OK Then
ConsoleWrite('--- --- --- ---' & @CRLF)
_SQLite_Display2DResult($aResult)
ConsoleWrite('--- --- --- ---' & @CRLF)
; Demo unter Verwendung von _SQLite_Display2DResult()
$sText = _SQLite_Display2DResult($aResult, Default, True, @TAB)
ConsoleWrite($sText & @CRLF) ; in eine Protokolldatei speichern...
$aArrayFromText = _ArrayFromString($sText, @TAB) ; ... dann das Array neu aufbauen
_DebugArrayDisplay($aArrayFromText, "from _SQLite_Display2DResult()")
ConsoleWrite('--- --- --- ---' & @CRLF)
; Demo unter Verwendung von _ArrayToString()
$sText = _ArrayToString($aResult)
ConsoleWrite($sText & @CRLF)
$aArrayFromText = _ArrayFromString($sText)
_DebugArrayDisplay($aArrayFromText, "from _ArrayToString()")
ConsoleWrite('--- --- --- ---' & @CRLF)
Else
MsgBox($MB_SYSTEMMODAL, "SQLite Fehler: " & $iRval, _SQLite_ErrMsg())
EndIf
_SQLite_Close()
_SQLite_Shutdown()
EndFunc ;==>Example