StringRegExp Array auf Index 0 setzen

  • Hallo,

    wenn ich die Funktion StringRegExp benutze erhalte ich ein Array. Meistens sind die einzelnen Arrayindizes leer bis auf eines. zB. 86.

    Gibt es eine einfache Möglichkeit, meinen matched String auf Index [0] zu bekommen?

    Was ich mir bisher ausgedacht ist, ist eine Schleife von

    [autoit]

    0 bis ubound -1 vom Array.

    [/autoit]

    Dann zu überprüfen ob

    [autoit]

    Index[$x] <> Chr(0)

    [/autoit]

    ist. Wenn dies der Fall ist

    [autoit]

    Index[0] =Index[$x].

    [/autoit]

    Mir scheint es, dass diese Methode nicht sehr zuverlässig ist.

    Gibt es eine andere Möglichkeit? Ich bekomme ansonsten öftersmal den Fehler.

    Zitat

    Subscript used whit non-Array variable


    Danke

  • Funktion von BugFix

    [autoit]

    Func _ArrayDeleteEmpty(ByRef $ARRAY)
    If Not IsArray($ARRAY) Then Return 0
    Local $arTMP[1]
    For $i = 0 To UBound($ARRAY) -1
    If $ARRAY[$i] <> '' Then
    If $arTMP[0] = '' Then
    $arTMP[0] = $ARRAY[$i]
    Else
    ReDim $arTMP[UBound($arTMP)+1]
    $arTMP[UBound($arTMP)-1] = $ARRAY[$i]
    EndIf
    EndIf
    Next
    $ARRAY = $arTMP
    EndFunc

    [/autoit]
  • Danke für die Antworten.

    Werde es mal ausprobieren.

    Was ich mache ist :


    [autoit]

    Func Arrayn($z)
    for $x = 0 to (Ubound($z)-1)
    if $z[$x] <> Chr(0) Then $z[0]=$z[$x]
    next
    EndFunc

    [/autoit]
  • Nicht immer, aber in 90% der Fällen habe ich mein Pattern im Griff, dass alle Übrigen leer sind.

    ich glaube ganz vermeiden kann man das nicht. Klappt aber soweit. Wenn ich nochmal auf Probleme stoße melde ich mich.


    Danke bis jetzt.

  • Nicht immer klingt grad nicht zuverlässig für ein Programm. Was willst du denn machen, vielleicht kann man das anders lösen, was zuverlässiger ist.

    • Offizieller Beitrag

    wenn ich die Funktion StringRegExp benutze erhalte ich ein Array. Meistens sind die einzelnen Arrayindizes leer bis auf eines. zB. 86.


    Wenn keine Werte enthalten sind, ist dein Pattern nicht optimal. Wenn das Pattern auf die Aufgabe korrekt abgestimmt ist, sind auch entsprechend Werte enthalten.

  • Hallo,

    ja, es ist nicht sehr zuverlässig.

    Ich habe grade auch wieder Probleme damit.

    Das Problem liegt einfach darin, falls kein Wert vorhanden ist, nachdem ich StringRegExp laufen lasse.

    Wird die Variable nicht zum Array.

    Da ich aber irgendwo Msgbox(0,"",$title[0]) ausgebe, bekomme ich subscript used with non array variable Fehlermeldung.

    Wie kann ich das lösen? Wenn kein Wert vorhanden ist und er die Variable nicht umwandelt zu einem Array? ?(