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 ![]()