Hallöle,
ich kriege es leider nicht gebacken, mein $Array[3][3] in einem Label anzeigen zu lassen
habe es mit _Arraytostring versucht, aber klappt nicht wirklich
wer sagt mir bitte wie es geht?
DANKE
Hallöle,
ich kriege es leider nicht gebacken, mein $Array[3][3] in einem Label anzeigen zu lassen
habe es mit _Arraytostring versucht, aber klappt nicht wirklich
wer sagt mir bitte wie es geht?
DANKE
Hi,
zeig mal deinen Code. ImPrinzip einfach GuiCtrlSetData($controlID, dein Array)
Mega
_ArrayToString kann keine 2D-Arrays, aber man kann das auch mit Hilfe zweier verschachtelter For...Next-Schleifen erledigen:
[autoit]
Dim $avArray[3][3]
For $j = 0 To 2 ; Array generieren
For $i = 0 to 2
$avArray[$j][$i] = Random(1, 20000, 1)
Next
Next
$string = ''
For $j = 0 To 2 ; Array To String
For $i = 0 to 2
$string &= $avArray[$j][$i] & @TAB
Next
$string &= @CRLF
Next
MsgBox(0, "Test", $string)
[/autoit]In einem Label?
Naja, egal - so gehts:
Global $Array[3][3] = [['a','b','c'],['d','e','f'],['g','h','i']], $str = '', $trenn = ';'
[/autoit][autoit][/autoit][autoit]For $i = 0 To UBound($Array) -1
For $j = 0 To UBound($Array, 2) -1
$str &= $Array[$i][$j] & $trenn
Next
Next
$str = StringTrimRight($str, 1) ; letztes Trennzeichen wieder abschneiden
ConsoleWrite($str & @CRLF) ; oder halt: GUICtrlSetData($Label, $str)
[/autoit]- Mal wieder alle auf einen Schlag.
Besten Dank wie immer an die 3 von der Tankstelle /bow
ich dachte es geht "einfacher"
ich bastel das mal in meine TicTacToe engine mit ein
muchas gracias
OK, ich bin so frei und spendier dir mal 'ne Funktion dafür. Arbeitet mit 1D und 2D Arrays.
Dann hast du nur noch eine Codezeile
Global $Array[3][3] = [['a','b','c'],['d','e','f'],['g','h','i']]
;~ Global $Array[5] = [1,2,3,4,5]
ConsoleWrite(_Array2DToString($Array, ';') & @CRLF)
[/autoit] [autoit][/autoit] [autoit];==================================================================================================
; Function Name: _Array2DToString(ByRef $avArray, $sDelim [, $iRowStart=-1 [, $iRowEnd=-1 [, $iColStart=-1 [, $iColEnd=-1]]]])
; Description:: Gibt einen String zurück mit allen Elementen des angegebenen Bereiches
; aus einem 1D- oder 2D-Array
; Parameter(s): $avArray Das Array, das in einen String konvertiert werden soll
; $sDelim Das Trennzeichen zwischen den Elementen
; Für alle optionalen Parameter wird mit "-1" der Standardwert gesetzt
; optional: $iRowStart Die Zeile ab der konvertiert werden soll, Standard: ab Index 0
; optional: $iRowEnd Die Zeile bis zu der konvertiert werden soll, Standard: letztes Element
; optional: $iColStart Die Spalte ab der konvertiert werden soll, Standard: ab Index 0
; optional: $iColEnd Die Spalte bis zu der konvertiert werden soll, Standard: letzte Spalte
; Return Value(s): Erfolg Konvertierter String
; Fehler 1 und @error 1 - kein Array übergeben
; 2 - StartIndex falsch
; Author(s): BugFix
;==================================================================================================
Func _Array2DToString(ByRef $avArray, $sDelim, $iRowStart=-1, $iRowEnd=-1, $iColStart=-1, $iColEnd=-1)
If Not IsArray($avArray) Then Return SetError(1,0,1)
If ($iRowStart < -1) Or ($iColStart < -1) Then Return SetError(2,0,1)
Local $ub2nd = UBound($avArray, 2)
Local $strOut = ''
If $iRowStart = -1 Then $iRowStart = 0
If $iRowEnd = -1 Then $iRowEnd = UBound($avArray) -1
Switch $ub2nd
Case 0
If $iRowEnd > UBound($avArray) -1 Then $iRowEnd = UBound($avArray) -1
For $i = $iRowStart To $iRowEnd
If $i = $iRowEnd Then
$strOut &= $avArray[$i]
Else
$strOut &= $avArray[$i] & $sDelim
EndIf
Next
Case Else
If $iRowEnd > $ub2nd -1 Then $iRowEnd = $ub2nd -1
If $iColStart = -1 Then $iColStart = 0
If $iColEnd = -1 Then $iColEnd = $ub2nd -1
For $i = $iRowStart To $iRowEnd
For $j = $iColStart To $iColEnd
If $i = $iRowEnd And $j = $iColEnd Then
$strOut &= $avArray[$i][$j]
Else
$strOut &= $avArray[$i][$j] & $sDelim
EndIf
Next
Next
EndSwitch
Return $strOut
EndFunc ;==>_Array2DToString
Danke an den ArrayKing