2 Diminsonales Array erstellen

07/16/2015 10:33 luli-1#1
Hallo Leute,

kleines Problem beim erstellen eines 2d Arrays:

Folgende aufgabe:

$string ist ein lange kette von zeichen die in 2 teile aufgeteilt wird

in $string1 und $string2

diese möchte ich in der schleife in das Array erstellen.. das geht auch nur werden alle vorherigen einträge gelöscht somit hab ich an ende der schleife ein Array das komplett leer ist bis auf der letze eintrag...

jemand einde idee ? konnte niegends eine lösung für 2d arrays finden :(


code:
#include <Array.au3>
#include <String.au3>
Dim $string[3]
$string[0] = "abcdfex"
$string[1] = "afddcfdx"
$string[2] = "adsfcdfsex"
;MsgBox(0,"",$string[2])
For $i = 0 to UBound($string) -1
Dim $array[UBound($string)][2]
$string1 = _StringBetween($string[$i],'a','c')
$string2 = _StringBetween($string[$i],'f','x')

$array[$i][0] = $string1[0]
$array[$i][1] = $string2[0]
_ArrayDisplay($array,"")
Next
_ArrayDisplay($array,"final")

Liebe Grüße

Luli1
07/16/2015 12:22 alpines#2
Poste doch mal bitte vernünftigen Code damit wir dir helfen können.
Ohne den Code auszuführen sehe ich schon Syntaxfehler und nicht vorhandene Funktionen.
07/16/2015 12:35 luli-1#3
so hier der Code der auch ausführbar ist.

#include <Array.au3>
#include <String.au3>
Dim $string[3]
$string[0] = "abcdfex"
$string[1] = "afddcfdx"
$string[2] = "adsfcdfsex"
;MsgBox(0,"",$string[2])
For $i = 0 to UBound($string) -1
Dim $array[UBound($string)][2]
$string1 = _StringBetween($string[$i],'a','c')
$string2 = _StringBetween($string[$i],'f','x')
; der teil der nicht geht!
$array[$i][0] = $string1[0]
$array[$i][1] = $string2[0]
_ArrayDisplay($array,"")
Next
_ArrayDisplay($array,"final")
07/16/2015 15:47 alpines#4
Besteht das Problem darin das die Einträge immer gelöscht werden? Wenn das das Problem ist, dann erstell nicht immer ein neues Array in der For-Schleife.
Mit Dim überschreibst du ALLE Arrayindizes. mit ReDim würdest du sie nur erweitern / kürzen.

Allerdings musst du das Dim Array For die Schleife setzen damit nicht immer der Inhalt gelöscht wird.
07/16/2015 16:59 BladeTiger12#5
Also erstmal würde ich checken, ob im StringBetween etwas gefunden wurde.
(If @error oder IsArray)

Dann verstehe ich den Sinn deiner For-Loop nicht. Warum erstellst du dauerhaft eine neue
2D Array die nach dem Durchgang eh wieder gelöscht wird?
07/16/2015 22:55 lolkop#6
Quote:
Originally Posted by BladeTiger12 View Post
Also erstmal würde ich checken, ob im StringBetween etwas gefunden wurde.
(If @error oder IsArray)

Dann verstehe ich den Sinn deiner For-Loop nicht. Warum erstellst du dauerhaft eine neue
2D Array die nach dem Durchgang eh wieder gelöscht wird?
Es wurde einfach die Arraydeklaration an der falschen Stelle eingesetzt. Ein durchaus nicht unüblicher Fehler in der Anfangszeit...

Korrigiert könnte das ganze z.B. so aussehen:
Code:
#include <Array.au3>
#include <String.au3>

Dim $string[3], $array[UBound($string)][2]
$string[0] = "abcdfex"
$string[1] = "afddcfdx"
$string[2] = "adsfcdfsex"

For $i = 0 to UBound($string) -1
   $string1 = _StringBetween($string[$i],'a','c')
   $string2 = _StringBetween($string[$i],'f','x')

   $array[$i][0] = $string1[0]
   $array[$i][1] = $string2[0]
   _ArrayDisplay($array,"")
Next
_ArrayDisplay($array,"final")
07/18/2015 13:57 luli-1#7
Ah natürlich... da hab ich wohl nen kaffee zu wenig getrunken.. :D

Vielen dank für die Hilfe