1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. BugFix

Beiträge von BugFix

  • GuictrlSetData() klappt nicht richtig?! (Setzt sofort Maximum)

    • BugFix
    • 9. November 2008 um 08:27

    Ich vermute du lädst du die Datei rauf? Dazu gibt es schon entsprechende Skripts (ich glaube von Xeno), wie du die Größe beim Upload ermitteln kannst. Mußt mal suchen.

  • In Inputbox nur Zahlen und ein buchstabe Zulassen

    • BugFix
    • 8. November 2008 um 22:40

    Hier findest du die Codes:
    Hilfe AutoIt ==> Appendix ==> Windows Message Codes

    Näheres über die Anwendung kannst du mit dem jeweiligen Code ergoogeln, oder bei MSDN nachschauen.

  • User - Date Input

    • BugFix
    • 8. November 2008 um 19:20

    Hi,
    da ich für meine Oberflächen auf Arbeit viel mit Datumsfeldern arbeite, habe ich mir jetzt mal eigene Datum-Inputs erstellt.
    Der Nachteil beim GUICtrlCreateDate ist, dass man bei der Eingabe immer in einer der 3 Gruppen (TT, MM od. JJJJ) hängt und nicht fortlaufend schreiben kann.
    Da ich den Date-Picker sowieso nie benutze, ist mir ein vorformatiertes Input lieber. Die Eingaben werden während des Schreibens auf Richtigkeit geprüft. Bei Eingabe eines falschen Wertes wird die Anzeige auf den Stand vor der Eingabe zurückgesetzt. Rein optisch bleibt der Cursor stehen. Beim Verlassen des Inputs wird nochmals validiert (falls unvollständige Eingabe). Liegt ein Fehler vor, bleibt der Fokus auf dem Input. Man kann das Input nur bei korrektem oder wieder gelöschtem Datum verlassen.
    Überprüft wird der Datumszeitraum von 01.01.1900 bis 31.12.2999 (Da das Pattern bis 2099 unwesentlich kürzer als bis 2999 ist, habe ich den gesamten Zeitraum verwendet.). Löschen ist nicht mit Backspace möglich, sondern über: Markieren - Entfernen.
    Zur Verwendung:
    Die Inputs, wie im Bsp. erstellen und deren ID's im $arDateInput der Funktion MY_WM_COMMAND() hinterlegen.
    Geschrieben werden kann nur, wenn ein Bereich markiert ist (also überschreibbar). Das ist gewollt, da immer der noch nicht geschriebene Teil des Datums markiert wird. Deshalb am Besten per TAB zu den Inputs bewegen, dann ist sofort alles markiert.

    Edit: Oops, da hatte ich einen Fehler in die Validierungsfunktion reinkopiert... Ist nun behoben.

    Spoiler anzeigen
    [autoit]

    #include <Editconstants.au3>
    #include <GUIConstants.au3>
    #include <WindowsConstants.au3>
    Global $GUI, $Input1, $Input2, $Input3, $Input4
    $GUI = GUICreate('TEST')
    $Input1 = GUICtrlCreateInput("__.__.____", 20, 50, 62, 21, $ES_NUMBER)
    $Input2 = GUICtrlCreateInput("__.__.____", 20, 80, 62, 21, $ES_NUMBER)
    $Input3 = GUICtrlCreateInput("__.__.____", 20, 110, 62, 21, $ES_NUMBER)
    $Input4 = GUICtrlCreateInput("__.__.____", 20, 140, 62, 21, $ES_NUMBER)
    GUISetState()
    GUIRegisterMsg($WM_COMMAND, 'MY_WM_COMMAND')

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    Exit
    Case Else
    ; ...
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func MY_WM_COMMAND($hWnd, $Msg, $wParam, $lParam)
    Local $nNotifyCode = BitShift($wParam, 16)
    Local $hCtrl = $lParam
    Local $arDateInput[4] = [$Input1,$Input2,$Input3,$Input4] ; Array mit den ID der zu prüfenden Inputs
    If $nNotifyCode = 1024 Then
    For $i = 0 To UBound($arDateInput) -1
    If $hCtrl = GUICtrlGetHandle($arDateInput[$i]) Then
    _CheckDateInput($hWnd, $arDateInput[$i])
    ExitLoop
    EndIf
    Next
    ElseIf $nNotifyCode = 512 Then
    For $i = 0 To UBound($arDateInput) -1
    If $hCtrl = GUICtrlGetHandle($arDateInput[$i]) Then
    _CheckByFocusLost($hWnd, $arDateInput[$i])
    ExitLoop
    EndIf
    Next
    EndIf
    Return $GUI_RUNDEFMSG
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _CheckDateInput($hWnd, $ID)
    Local $current = StringReplace(GUICtrlRead($ID),'.',''), $str = '__.__.____'
    Local $num = StringRegExp($current, '\d', 3)
    If @error Then Return GUICtrlSetData($ID, $str)
    Local $ub = UBound($num)
    Local $arPattern[8] = [ _
    "[0-3]", "(0[1-9]|[12][0-9]|3[01])", "(0[1-9]|[12][0-9]|3[01])[0-1]", _
    "(((0[1-9]|[12][0-9])02)|((0[1-9]|[12][0-9]|30)(0[469]|11))|(0[1-9]|[12][0-9]|3[01])(0[13578]|1[02]))", _
    "(((0[1-9]|[12][0-9])02)|((0[1-9]|[12][0-9]|30)(0[469]|11))|(0[1-9]|[12][0-9]|3[01])(0[13578]|1[02]))[12]", _
    "(((0[1-9]|[12][0-9])02)|((0[1-9]|[12][0-9]|30)(0[469]|11))|(0[1-9]|[12][0-9]|3[01])(0[13578]|1[02]))[12][09]", _
    "(((0[1-9]|[12][0-9])02)|((0[1-9]|[12][0-9]|30)(0[469]|11))|(0[1-9]|[12][0-9]|3[01])(0[13578]|1[02]))[12][09]\d", _
    "((((0[1-9]|1[0-9]|2[0-8])02)|((0[1-9]|[12][0-9]|30)(0[469]|11))|(0[1-9]|[12][0-9]|3[01])(0[13578]|1[02]))" & _
    "((19|2[0-9])([02468][1235679]|[13579][01345789])|(19|2[1235679])00))|((((0[1-9]|1[0-9]|2[0-9])02)|((0[1-9]|[12][0-9]|30)" & _
    "(0[469]|11))|(0[1-9]|[12][0-9]|3[01])(0[13578]|1[02]))((19|2[0-9])(04|08|[2468][048]|[13579][26])|(20|24|28)00))"]
    If Not StringRegExp($current, $arPattern[$ub-1]) Then $ub -= 1
    Switch $ub
    Case 0
    GUICtrlSetData($ID, $str)
    Case 1
    GUICtrlSetData($ID, $num[0] & StringRight($str, 9))
    Case 2
    GUICtrlSetData($ID, $num[0] & $num[1] & StringRight($str, 8))
    Case 3
    GUICtrlSetData($ID, $num[0] & $num[1] & '.' & $num[2] & StringRight($str, 6))
    $ub += 1
    Case 4
    GUICtrlSetData($ID, $num[0] & $num[1] & '.' & $num[2] & $num[3] & StringRight($str, 5))
    $ub += 1
    Case 5 to 8
    Local $sYear = ''
    For $i = 4 To $ub -1
    $sYear &= $num[$i]
    Next
    GUICtrlSetData($ID, $num[0] & $num[1] & '.' & $num[2] & $num[3] & '.' & $sYear & StringRight($str, 8 -$ub))
    $ub += 2
    EndSwitch
    ControlSend($hWnd, '', $ID, '{END}{SHIFTDOWN}{HOME}{RIGHT ' & $ub & '}{SHIFTUP}')
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _CheckByFocusLost($hWnd, $ID)
    If StringLen(StringReplace(StringReplace(GUICtrlRead($ID),'.',''),'_','')) = 0 Then Return
    If Not StringRegExp(StringReplace(StringReplace(GUICtrlRead($ID),'.',''),'_',''), "((((0[1-9]|1[0-9]|2[0-8])02)|((0[1-9]|[12][0-9]|30)(0[469]|11))|(0[1-9]|[12][0-9]|3[01])(0[13578]|1[02]))" & _
    "((19|2[0-9])([02468][1235679]|[13579][01345789])|(19|2[1235679])00))|((((0[1-9]|1[0-9]|2[0-9])02)|((0[1-9]|[12][0-9]|30)" & _
    "(0[469]|11))|(0[1-9]|[12][0-9]|3[01])(0[13578]|1[02]))((19|2[0-9])(04|08|[2468][048]|[13579][26])|(20|24|28)00))") Then _
    ControlFocus($hWnd, '', $ID)
    EndFunc

    [/autoit]
  • AutoIt Basic Teamspeak Client

    • BugFix
    • 8. November 2008 um 17:09
    Zitat von Tom99

    Hab das in Python angefangen, da Auoit dafür nicht geignet ist.

    Hab zwar keine Phyton-Kenntnisse - aber das was ich im Code gelesen hab, scheint mir ohne weiteres auch in AutoIt realisierbar.
    Woraus schließt du, das AutoIt dafür ungeeignet ist?

  • Hilfe bei StringRegExp()

    • BugFix
    • 7. November 2008 um 21:53

    Dann mach es so:

    [autoit]

    #include<array.au3>
    $string = '<td style="vertical-align: top;"><font size="-1">NAME,VORNAME<br>'
    $ret = StringRegExp($string, '(?<="-1"\>).*(?=\<br\>)', 1)
    _ArrayDisplay($ret)

    [/autoit]
  • Was nehme ich am Besten um einen Speicherpfad zu wählen?

    • BugFix
    • 7. November 2008 um 18:46

    _FileSelectFolder()

  • DropDown Menü für Farben

    • BugFix
    • 7. November 2008 um 14:40

    Das ist kein Problem mit den UDF der GuiComboBoxEx.au3.
    Du erstellst eine Imagelist mit den Farben und weist den Einträgen die entsprechenden Images zu.
    Schau dir mal die Bsp. dort an.

  • bestimmte Dateiinhalte löschen ?

    • BugFix
    • 7. November 2008 um 14:23

    "Local" in Zeile 19 kannst du löschen, ich hatte es vergessen als ich die Deklarationen an den Anfang verschoben hab ;)

    Um alle Unterordner ab Pfad zu durchsuchen, mußt du dir eine rekursive Filelist erstellen. Nutze mal die SuFu - dazu hab u. a. ich eine UDF erstellt.

  • Falsche Eingaben abfangen

    • BugFix
    • 7. November 2008 um 14:06

    Wenn du per Button die GUI_2 aufrufst, kannst du doch als erstes eine Prüffunktion für Inhalte der Inputs durchführen. Nur wenn die OK gibt, zeigst du GUI_2, sonst brichst du ab und bleibst somit auf GUI_1.

  • Variable in einer Func speichern und diese ändern

    • BugFix
    • 7. November 2008 um 13:57

    Um einen Wert zu switchen, bietet sich BitXOr() an:

    [autoit]

    Local $val = 0

    [/autoit][autoit][/autoit][autoit]

    ConsoleWrite(_switch($val) & @CRLF)
    ConsoleWrite(_switch($val) & @CRLF)
    ConsoleWrite(_switch($val) & @CRLF)

    [/autoit][autoit][/autoit][autoit]

    Func _switch(ByRef $VAR)
    $VAR = BitXOR($VAR, 1)
    Return $VAR
    EndFunc

    [/autoit]
  • Mehrere Ordner auswählen

    • BugFix
    • 7. November 2008 um 13:38

    Stimmt, mit FileSelectFolder() läßt sich nur ein Ordner wählen.
    Aber wenn du mehrere möchtest, kannst du den Dialog ja in einer Schleife aufrufen und erst mit Abbruch ohne Auswahl wird diese beendet:

    [autoit]

    Local $arFolder[100], $i = 0, $path = @MyDocumentsDir
    While True
    $arFolder[$i] = FileSelectFolder("Ordner auswählen", $path)
    If @error Then ExitLoop
    $i += 1
    WEnd
    ReDim $arFolder[$i+1]

    [/autoit]
  • bestimmte Dateiinhalte löschen ?

    • BugFix
    • 7. November 2008 um 13:26

    Was soll dieses Array NewFile nützen??

    Spoiler anzeigen
    [autoit]

    #include <file.au3>
    #Include <Array.au3>
    #include "_Array2DEmptyDel.au3"

    [/autoit] [autoit][/autoit] [autoit]

    Local $folder, $filesinpath, $aFile
    While True
    $folder = FileSelectFolder("Ordner auswählen","c:\admin_V8\config\project_config\users\")
    If @error Then
    If MsgBox(262180,"Achtung!","Es wurde kein Ordner gewählt." & @CRLF & "Soll das Programm beendet werden?") = 6 Then Exit
    Else
    ExitLoop
    EndIf
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    $filesinpath = _FileListToArray($folder, "*.ucf", 1)
    If @error Then Exit MsgBox(262192,"Achtung!","Der gewählte Ordner enthält keine Dateien!")
    ;~ _ArrayDisplay($filesinpath)

    [/autoit] [autoit][/autoit] [autoit]

    Local

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 1 To UBound($filesinpath)
    If Not _FileReadToArray( $folder & "\" & $filesinpath[$i], $aFile) Then ContinueLoop
    For $k = 1 To UBound($aFile) -1
    If StringRegExp($aFile[$k], '(MS_)(MDL(APPS)?|DGNAPPS)') Then $aFile[$k] = ''
    Next
    _Array2DEmptyDel($aFile)
    _FileWriteFromArray($folder & "\clean_" & $filesinpath[$i], $aFile, 1)
    ; hab hier mal einen anderen Dateinamen verwendet um das Original nicht zu überschreiben
    Next

    [/autoit]
  • FTP-Server Frage!

    • BugFix
    • 6. November 2008 um 22:41

    User wird angenommen (OK)
    Passwort aber nicht (authentification failed)

    Also ist das Passwort falsch, oder wird falsch übermittelt.

  • Codierer Ultra 2008

    • BugFix
    • 6. November 2008 um 22:35

    Ich glaube, du mißverstehst den Sinn des Skript-Forums.
    Es geht hier nicht darum kompilierte Dateien zu posten. Hier wird Skriptcode allen zugänglich dargestellt.
    Oder gehörst du zu den Menschen, die fremde exe-Files ausführen? :wacko:
    Außerdem wäre es ratsam zu erklären, was das Skript den eigentlich vollbringt.

  • bestimmte Dateiinhalte löschen ?

    • BugFix
    • 6. November 2008 um 22:28

    Hi,
    es ist schon alles vorbereitet, du mußt die Teile nur zusammenfügen.

    Diese Lösung:

    [autoit]

    If StringInStr($aFile[$i],"MS_MDLAPPS") Or StringInStr($aFile[$i],"MS_MDL") Or StringInStr($aFile[$i],"MS_DGNAPPS") Then ContinueLoop

    [/autoit]

    ist nicht zu empfehlen, da sie der gestellten Bedingung nicht entspricht. Es wurde gesagt, dass nur wenn eine Zeile mit den benannten Begriffen beginnt, diese gelöscht werden soll. StringInStr() prüft nur auf Vorkommen irgendwo im String.
    Deshalb meine Variante:

    [autoit]

    If StringRegExp($arFile[$i], '(MS_)(MDL(APPS)?|DGNAPPS)') Then $arFile[$i] = ''

    [/autoit]
  • GUI Input

    • BugFix
    • 6. November 2008 um 20:26

    Und?...warum behebst du den Syntaxfehler nicht? Steht doch glasklar lesbar drin, was der Fehler ist:
    Unausgeglichene Klammersetzung!

  • GUI Input

    • BugFix
    • 6. November 2008 um 14:40

    Weil wir noch immer hoffen, dass du mal einen kurzen Blick in die Hilfe wirfst :whistling:
    Dort findest du deine Fragen ausgiebig mit Beispiel erläutert.

  • bestimmte Dateiinhalte löschen ?

    • BugFix
    • 6. November 2008 um 13:05

    Hi,
    so gehts in der einzelnen Datei. Du kannst ja alle Dateien vorher in ein Array einlesen und dann hiermit abarbeiten:

    Spoiler anzeigen
    [autoit]

    #include<array.au3>
    #include<file.au3>

    [/autoit] [autoit][/autoit] [autoit]

    ;~ Local $arFile, $Path = 'Pfad'
    ;~ _FileReadToArray($Path, $arFile)
    ;~ If Not IsArray($arFile) Then Exit MsgBox(0, '', 'Datei konnte nicht gelesen werden.')

    [/autoit] [autoit][/autoit] [autoit]

    ; ##### zum Test ######
    Local $arFile[9] = [8, _
    'MS_MDLAPPS > C:/Programme/MicroStationV8/Workspace/standards/mdlapps/intelnt/', _
    'MS_MDL > D:/prj/25808061/prcfg/mdl/', _
    'MS_DGNAPPS > sscloud', _
    'MS_MDL = C:/Programme/MicroStationV8/Program/MicroStation/FeatureModeling/features/', _
    'MS_DGNAPPS > $(SR_ADMIN)user_config/$(_USTN_USERNAME)/sscloud.ma', _
    'bjklllm', _
    'khglbhötji', _
    'MMMGGG']
    ; ######################

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 1 To UBound($arFile) -1
    If StringRegExp($arFile[$i], '(MS_)(MDL(APPS)?|DGNAPPS)') Then
    $arFile[$i] = ''
    $arFile[0] -= 1
    EndIf
    Next
    _Array2DEmptyDel($arFile)
    _ArrayDisplay($arFile)

    [/autoit] [autoit][/autoit] [autoit]

    ;~ _FileWriteFromArray('Ausgabedatei', $arFile, 1)

    [/autoit] [autoit][/autoit] [autoit]

    ;----------------------------------------------------------------------------------------------------------------------
    ; Function _Array2DEmptyDel(ByRef $avArray [, $Col=0])
    ;
    ; Description Delete empty Array elements
    ; Delete all emty Rows or all empty Columns
    ; Works also with 1D-Array (only Rows)
    ;
    ; Parameter $avArray Given Array
    ; optional $Col set 1 to delete empty Columns; default is 0 to delete empty Rows
    ;
    ; Return Succes 0 ByRef the given Array without empty Elements, resized
    ; Failure 1 and set @error = 1
    ;
    ; Author BugFix ([email='bugfix@autoit.de'][/email])
    ;----------------------------------------------------------------------------------------------------------------------
    Func _Array2DEmptyDel(ByRef $avArray, $Col=0)
    If ( Not IsArray($avArray) ) Then Return SetError(1,0,1)
    Local $i, $k, $notEmpty
    Local $UBound2nd = UBound($avArray,2)
    If @error = 2 Then
    Local $arTMP[1]
    For $i = 0 To UBound($avArray)-1
    If StringLen($avArray[$i] > 0) Then
    If StringLen($arTMP[UBound($arTMP)-1]) = 0 Then
    $arTMP[UBound($arTMP)-1] = $avArray[$i]
    Else
    ReDim $arTMP[UBound($arTMP)+1]
    $arTMP[UBound($arTMP)-1] = $avArray[$i]
    EndIf
    EndIf
    Next
    Else
    If $Col = 0 Then
    Local $arTMP[1][$UBound2nd], $val, $len
    For $i = 0 To UBound($avArray)-1
    $val = ''
    For $k = 0 To $UBound2nd-1
    $val &= $avArray[$i][$k]
    Next
    If StringLen($val) > 0 Then
    $len = 0
    For $k = 0 To UBound($arTMP,2)-1
    $len &= StringLen($arTMP[UBound($arTMP)-1][$k])
    Next
    If $len = 0 Then
    For $k = 0 To $UBound2nd-1
    $arTMP[UBound($arTMP)-1][$k] = $avArray[$i][$k]
    Next
    Else
    ReDim $arTMP[UBound($arTMP)+1][$UBound2nd]
    For $k = 0 To $UBound2nd-1
    $arTMP[UBound($arTMP)-1][$k] = $avArray[$i][$k]
    Next
    EndIf
    EndIf
    Next
    Else
    Local $arTMP[UBound($avArray)][1], $val, $len
    For $k = 0 To $UBound2nd-1
    $val = ''
    $notEmpty = 0
    For $i = 0 To UBound($avArray)-1
    $val &= $avArray[$i][$k]
    If StringLen($val) > 0 Then
    $notEmpty = 1
    ExitLoop
    EndIf
    Next
    If $notEmpty = 1 Then
    $len = 0
    For $i = 0 To UBound($arTMP)-1
    $len &= StringLen($arTMP[$i][UBound($arTMP,2)-1])
    Next
    If $len = 0 Then
    For $i = 0 To UBound($avArray)-1
    $arTMP[$i][0] = $avArray[$i][$k]
    Next
    Else
    ReDim $arTMP[UBound($avArray)][UBound($arTMP,2)+1]
    For $i = 0 To UBound($avArray)-1
    $arTMP[$i][UBound($arTMP,2)-1] = $avArray[$i][$k]
    Next
    EndIf
    EndIf
    Next
    EndIf
    EndIf
    $avArray = $arTMP
    Return 0
    EndFunc ;==>_Array2DEmptyDel

    [/autoit]
  • ArrayMore.au3

    • BugFix
    • 5. November 2008 um 21:48

    So, nach langer Zeit mal wieder was Neues:

    _Array2DMinMax()
    - Ermittelt den Min- oder Maxwert in einem Array
    - Vergleich in einer oder allen Spalten
    - Rückgabe Array mit [Wert,Index]

    Werde es bei Gelegenheit in die Sammlung einfügen.

    Spoiler anzeigen
    [autoit]

    ;==================================================================================================
    ; Function Name: _Array2DMinMax(ByRef $ARRAY [, $MAX=0 [, $iCol=0 [, $sDelim=';']]])
    ; Description:: gibt den minimalen od. maximalen Wert eines 1D/2D-Array zurück
    ; Überprüfung einer oder aller Spalten
    ; Parameter(s): $ARRAY das zu prüfende Array
    ; $MAX 0 = Minwert (Standard); 1 = Maxwert
    ; $iCol SpaltenIndex 0 = Standard
    ; -1 = alle Spalten werden geprüft
    ; $sDelim Trennzeichen f. Indexwerte, Standard ';'
    ; mit 'Default' Zeichen von Opt('GUIDataSeparatorChar')
    ; Return Value(s): Erfolg Array[0] = Max/Min-Wert; Array[1] = Index(Zeile [, Spalte])
    ; Fehler -1 @error = 1 kein Array übergeben
    ; @error = 2 $iCol überschreitet UBound,2
    ; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
    ;==================================================================================================
    Func _Array2DMinMax(ByRef $ARRAY, $MAX=0, $iCol=0, $sDelim=';')
    If Not IsArray($ARRAY) Then Return SetError(1,0,-1)
    Local $Ub2nd = UBound($ARRAY, 2)-1, $arOut[2] = [0]
    If $MAX <> 0 Then $MAX = 1
    If $sDelim = Default Then $sDelim = Opt('GUIDataSeparatorChar')
    If @error Then
    For $i = 0 To UBound($ARRAY) -1
    If $MAX = 1 Then
    If Number($ARRAY[$i]) > $arOut[0] Then
    $arOut[0] = Number($ARRAY[$i])
    $arOut[1] = $i
    EndIf
    Else
    If $i = 0 Then
    $arOut[0] = Number($ARRAY[$i])
    $arOut[1] = $i
    EndIf
    If Number($ARRAY[$i]) < $arOut[0] Then
    $arOut[0] = Number($ARRAY[$i])
    $arOut[1] = $i
    EndIf
    EndIf
    Next
    Else
    If $iCol > $Ub2nd Then Return SetError(2,0,-1)
    If $iCol < -1 Then $iCol = -1
    If $iCol = -1 Then
    For $i = 0 To UBound($ARRAY) -1
    For $k = 0 To $Ub2nd
    If $MAX = 1 Then
    If Number($ARRAY[$i][$k]) > $arOut[0] Then
    $arOut[0] = Number($ARRAY[$i][$k])
    $arOut[1] = $i & $sDelim & $k
    EndIf
    Else
    If $i = 0 Then
    $arOut[0] = Number($ARRAY[$i][$k])
    $arOut[1] = $i & $sDelim & $k
    EndIf
    If Number($ARRAY[$i][$k]) < $arOut[0] Then
    $arOut[0] = Number($ARRAY[$i][$k])
    $arOut[1] = $i & $sDelim & $k
    EndIf
    EndIf
    Next
    Next
    Else
    For $i = 0 To UBound($ARRAY) -1
    If $MAX = 1 Then
    If Number($ARRAY[$i][$iCol]) > $arOut[0] Then
    $arOut[0] = Number($ARRAY[$i][$iCol])
    $arOut[1] = $i & $sDelim & $iCol
    EndIf
    Else
    If $i = 0 Then
    $arOut[0] = Number($ARRAY[$i][$iCol])
    $arOut[1] = $i & $sDelim & $iCol
    EndIf
    If Number($ARRAY[$i][$iCol]) < $arOut[0] Then
    $arOut[0] = Number($ARRAY[$i][$iCol])
    $arOut[1] = $i & $sDelim & $iCol
    EndIf
    EndIf
    Next
    EndIf
    EndIf
    Return $arOut
    EndFunc ;==>_Array2DMinMax

    [/autoit]
  • Array: incorrect number of subscripts

    • BugFix
    • 4. November 2008 um 23:06
    Zitat von GrungeRocker

    Ich habe NIE verstanden was UBound macht...

    Gar nicht so schwer, sagt eigentlich der Name schon.
    UpperBound - Obergrenze
    UBound($Array, 0) = Anzahl der Dimensionen
    UBound($Array, 2) = Anzahl Elemente in 2.ter Dimension
    UBound($Array, n) = Anzahl Elemente in n.ter Dimension

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™