Funktionreferenz


_ArrayFromString

Beschreibung anzeigen in

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]]]] )

Parameter

$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.

Rückgabewert

Erfolg: Ein Array
Fehler: Setzt das @error Flag auf ungleich null.

Bemerkungen

** 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.

Verwandte Funktionen

_ArrayToString, _SQLite_Display2DResult

Beispiel

Beispiel 1

#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

Beispiel 2

#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