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. Kleiner

Beiträge von Kleiner

  • 2D-Array - Array in Array?

    • Kleiner
    • 1. Oktober 2010 um 10:05

    Hi!

    Ich würde dir Empfehlen

    [autoit]

    IniReadSection

    [/autoit]


    zu nutzen, du läst eine Section auslesen und bekommst ein 2 Dimension Array zurück:

    [autoit]

    Eine standardkonforme .ini-Datei sieht folgendermaßen aus:
    [SektionsName]
    Schlüssel=Wert

    [/autoit]


    Das Array kannst du dann an deine wünsche anpassen wie das beispiel in der hilfe zeigt:

    [autoit]

    $var = IniReadSection("C:\Temp\meineDatei.ini", "sektion2")
    If @error Then
    MsgBox(4096, "", "Es ist ein Fehler aufgetreten. Warscheinlich keine INI Datei vorhanden.")
    Else
    For $i = 1 To $var[0][0]
    MsgBox(4096, "", "Schlüssel: " & $var[$i][0] & @CRLF & "Wert: " & $var[$i][1])
    Next
    EndIf

    [/autoit]


    du brauchst jetzt nur noch ein Array zu deklarieren nach deinen wünschen und die jeweiligen werte zuweisen.
    Beispiel:

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>

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

    $var = IniReadSection(@ScriptDir & '\test.ini', 'test')

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

    Dim $aNewArray[UBound($var) - 1][3]

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

    If @error Then
    MsgBox(4096, "", "Es ist ein Fehler aufgetreten. Warscheinlich keine INI Datei vorhanden.")
    Else
    For $i = 1 To $var[0][0]
    $aNewArray[$i - 1][0] = $var[$i][0] & ' Schlüssel'
    $aNewArray[$i - 1][1] = $var[$i][1] & ' Wert'
    $aNewArray[$i - 1][2] = $i
    MsgBox(4096, "", "Schlüssel: " & $var[$i][0] & @CRLF & "Wert: " & $var[$i][1])
    Next
    EndIf

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

    _ArrayDisplay($aNewArray)

    [/autoit]

    zu den Quellcode erstellen gibt es oben rechts (SP) für Spoiler und das AutoIT Logo für den Quelltext

    Edit:/ da wahr ich aber langsam :D

    LG Kleiner

  • GDI+ Pixel Text Effect Beta Build 2010-10-21

    • Kleiner
    • 30. September 2010 um 23:50

    Hi UEZ!

    Wieder ein schönes beispiel, was aber für meine augen aufällt 8o , in manchen momenten stockt hackt es, ich würde mir weichere übergänge wünschen! :rolleyes:


    LG Kleiner

  • ArrayDisplay für 1, 2, 3 Dimensionen und Array in Array

    • Kleiner
    • 30. September 2010 um 23:00

    Hi!

    Update: Habe den 'Copy Selected' Button hinzugefügt!

    @Marsi
    Schöner gedanke, ich glaube nicht das sich 3d Array´s darstellen lassen, vieleicht wie du schon sagst im begrenztem Rahmen!
    Ab der 3 Dimension hat ma zB. ( $avArray[10][10][10] ) = 10 Array * 10 zeilen * 10 spalten usw.

    Edit:/ Jetzt kann man zumindestens komfortabel 3 Dimensionen bearbeiten!

    LG kleiner

  • 2D-Array - Array in Array?

    • Kleiner
    • 30. September 2010 um 17:04

    Hi!

    Erstmal ist es nicht schön zwei Post zu dem selben Thema zu machen!
    Und die Hilfe......
    Steht das :

    [autoit]

    _FileReadToArray

    [/autoit]


    um mehr zu erfahren soltest du genauer werden! ;)

    LG Kleiner

  • ArrayDisplay für 1, 2, 3 Dimensionen und Array in Array

    • Kleiner
    • 30. September 2010 um 16:24

    Hi Leute!

    Ich Spiele zur zeit mit 3 Dimension Array´s wie oft auch schon angsprochen kann man die Daten nur umstäntlich Kontrolieren, ich habe dafür eine lösung wobei ich den mitgelieferten _ArrayDisplay integriert habe wenn 1D o. 2D übergeben werden.
    Ich habe schon gesehen das es viele lösungen mit TreeView gibt nur finde ich die lösungen nicht übersichtlich.

    Update: Habe den 'Copy Selected' Button hinzugefügt!

    Update2: Nochmasl überarbeitet, keine weiterleitung mehr an das Integrierte ArrayDisplay, Es werden jetzt 1D 2D 3D u. Array in Array unterstützt.
    BugFix ich habe dein _ArrayMultiDisplay umgeschrieben das, alle unsere Funktionen unter einem dach sind, den Namen habe ich beibehalten.

    Beispiel:

    Spoiler anzeigen
    [autoit]

    #AutoIt3Wrapper_UseX64=n
    #include <_ArrayMultiDisplay.au3>

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

    Dim $max = 10
    Dim $aArray[$max][7][7]
    Dim $aArray_[$max][10]
    Dim $aArray1[$max]
    Dim $aArray__[$max]
    Local $iDimensio = UBound($aArray, 0), $iUBoun = UBound($aArray, 1) - 1, $iSubMa = UBound($aArray, 2) - 1

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

    For $iUB = 0 To $iUBoun
    $aArray1[$iUB] = Chr(Random(65, 90, 1)) & Chr(Random(65, 68, 1))
    Next

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

    For $iUB = 0 To $iUBoun
    $aArray[$iUB][0][0] = $aArray1
    $aArray[$iUB][1][0] = 'Spalte 2'
    $aArray[$iUB][2][0] = Chr(Random(65, 90, 1)) & Chr(Random(65, 80, 1))
    $aArray[$iUB][0][1] = $iUB + $aArray[$iUB][0][0]
    $aArray[$iUB][1][3] = $aArray1
    $aArray[$iUB][6][4] = Chr(Random(65, 90, 1)) & Chr(Random(65, 68, 1))
    Next
    _ArrayMultiDisplay($aArray, '3D Array Display')

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

    For $iUB = 0 To $iUBoun
    $aArray_[$iUB][0] = $iUB + $iUB
    $aArray_[$iUB][1] = 'Spalte 2'
    $aArray_[$iUB][2] = Chr(Random(65, 90, 1)) & Chr(Random(65, 80, 1))
    $aArray_[$iUB][3] = $iUB + $aArray_[$iUB][0]
    $aArray_[$iUB][4] = $aArray1
    $aArray_[$iUB][5] = Chr(Random(65, 90, 1)) & Chr(Random(65, 68, 1))
    Next
    _ArrayMultiDisplay($aArray_, '2D Array Display')

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

    $aArray__[0] = $aArray1
    For $iUB = 1 To $iUBoun
    $aArray__[$iUB] = Chr(Random(65, 90, 1)) & Chr(Random(65, 80, 1))
    Next
    _ArrayMultiDisplay($aArray__, '1D Array Display')

    [/autoit]

    _ArrayDisplay3D: New _ArrayMultiDisplay

    Spoiler anzeigen
    [autoit]

    #include-once
    #include <Array.au3>
    #include <GuiListView.au3>
    #include <GUIConstantsEx.au3>
    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _ArrayMultiDisplay
    ; Description ...: Displays given 1D or 2D or 3D u. bei 2D Array ( Array in Array )array in a listview.
    ; Array elements, which is itself a 1D/2D-Array to be, as "[sub-array]" marked and can be displayed mouse button by Right.
    ; Syntax.........: _ArrayDisplay(Const ByRef $avArray[, $sTitle = "Array: ListView Display"[, $iItemLimit = -1[, $iTranspose = 0[, $sSeparator = ""[, $sReplace = "|"[, $sHeader = ""]]]]]])
    ; Parameters ....: $avArray - Array to display
    ; $sTitle - [optional] Title to use for window
    ; $iItemLimit - [optional] Maximum number of listview items (rows) to show
    ; $iTranspose - [optional] If set differently than default, will transpose the array if 2D
    ; $sSeparator - [optional] Change Opt("GUIDataSeparatorChar") on-the-fly
    ; $sReplace - [optional] String to replace any occurrence of $sSeparator with in each array element
    ; $sheader - [optional] Header column names
    ; Return values .: Success - 1
    ; Failure - 0, sets @error:
    ; |1 - $avArray is not an array
    ; |2 - $avArray has too many dimensions (only up to 3D supported)
    ; Author ........: randallc, Ultima, BugFix, Kleiner
    ; Modified.......: Gary Frost (gafrost), Ultima, Zedna, jpm, BugFix, Kleiner
    ; Remarks .......:
    ; Related .......:
    ; Link ..........:
    ; Example .......: Yes
    ; ===============================================================================================================================
    Func _ArrayMultiDisplay(Const ByRef $avArray, $sTitle = 'Array: ListView Display', $iItemLimit = -1, $iTranspose = 0, $sSeparator = '', $sReplace = '|', $sHeader = '')
    If Not IsArray($avArray) Then Return SetError(1, 0, 0)
    Global $avArrayMultiDisplay = $avArray
    Local $iDimension = UBound($avArray, 0), $iUBound = UBound($avArray, 1) - 1, $iSubMax = UBound($avArray, 2) - 1, $3DiUB = UBound($avArray, 3)
    If ($iDimension > 3) Then Return SetError(2, 0, 0)
    If ($sSeparator = '') Then $sSeparator = Chr(124)
    If _ArraySearch($avArray, $sSeparator, 0, 0, 0, 1) <> -1 Then
    For $x = 1 To 255
    If $x >= 32 And $x <= 127 Then ContinueLoop
    Local $sFind = _ArraySearch($avArray, Chr($x), 0, 0, 0, 1)
    If $sFind = -1 Then
    $sSeparator = Chr($x)
    ExitLoop
    EndIf
    Next
    EndIf
    Local $vTmp, $iBuffer = 64
    Local $iColLimit = 250, $iLVIAddUDFThreshold = 4000
    Local $iOnEventMode = Opt('GUIOnEventMode', 0), $sDataSeparatorChar = Opt('GUIDataSeparatorChar', $sSeparator)
    If $iSubMax < 0 Then $iSubMax = 0
    If $iTranspose Then
    $vTmp = $iUBound
    $iUBound = $iSubMax
    $iSubMax = $vTmp
    EndIf
    If $iSubMax > $iColLimit Then $iSubMax = $iColLimit
    If $iItemLimit < 1 Then $iItemLimit = $iUBound
    If $iUBound > $iItemLimit Then $iUBound = $iItemLimit
    If $iLVIAddUDFThreshold > $iUBound Then $iLVIAddUDFThreshold = $iUBound
    If ($sHeader = '') Then
    $sHeader = 'Row '
    For $i = 0 To $iSubMax
    $sHeader &= $sSeparator & 'Col ' & $i
    Next
    EndIf
    If Not $3DiUB Then $3DiUB = 1
    Local $Sub = False
    Local $avArrayText[$iUBound + 1][$3DiUB]
    For $3D = 0 To $3DiUB - 1
    For $i = 0 To $iUBound
    $avArrayText[$i][$3D] = '[' & $i & ']'
    For $j = 0 To $iSubMax
    If ($iDimension = 1) Then
    If $iTranspose Then
    $vTmp = $avArray[$j]
    Else
    $vTmp = $avArray[$i]
    EndIf
    Else
    If ($iDimension = 3) Then
    If $iTranspose Then
    $vTmp = $avArray[$j][$i][$3D]
    Else
    $vTmp = $avArray[$i][$j][$3D]
    EndIf
    Else
    If $iTranspose Then
    $vTmp = $avArray[$j][$i]
    Else
    $vTmp = $avArray[$i][$j]
    EndIf
    EndIf
    EndIf
    If IsArray($vTmp) Then
    $vTmp = '[SubArray]'
    $Sub = True
    Else
    $vTmp = StringReplace($vTmp, $sSeparator, $sReplace, 0, 1)
    EndIf
    $avArrayText[$i][$3D] &= $sSeparator & $vTmp
    $vTmp = StringLen($vTmp)
    If $vTmp > $iBuffer Then $iBuffer = $vTmp
    Next
    Next
    Next
    $iBuffer += 1
    Local Const $_ARRAYCONSTANT_GUI_DOCKBORDERS = 0x66
    Local Const $_ARRAYCONSTANT_GUI_DOCKBOTTOM = 0x40
    Local Const $_ARRAYCONSTANT_GUI_DOCKHEIGHT = 0x0200
    Local Const $_ARRAYCONSTANT_GUI_DOCKLEFT = 0x2
    Local Const $_ARRAYCONSTANT_GUI_DOCKRIGHT = 0x4
    Local Const $_ARRAYCONSTANT_GUI_EVENT_CLOSE = -3
    Local Const $_ARRAYCONSTANT_LVIF_PARAM = 0x4
    Local Const $_ARRAYCONSTANT_LVIF_TEXT = 0x1
    Local Const $_ARRAYCONSTANT_LVM_GETCOLUMNWIDTH = (0x1000 + 29)
    Local Const $_ARRAYCONSTANT_LVM_GETITEMCOUNT = (0x1000 + 4)
    Local Const $_ARRAYCONSTANT_LVM_GETITEMSTATE = (0x1000 + 44)
    Local Const $_ARRAYCONSTANT_LVM_INSERTITEMW = (0x1000 + 77)
    Local Const $_ARRAYCONSTANT_LVM_SETEXTENDEDLISTVIEWSTYLE = (0x1000 + 54)
    Local Const $_ARRAYCONSTANT_LVM_SETITEMW = (0x1000 + 76)
    Local Const $_ARRAYCONSTANT_LVS_EX_FULLROWSELECT = 0x20
    Local Const $_ARRAYCONSTANT_LVS_EX_GRIDLINES = 0x1
    Local Const $_ARRAYCONSTANT_LVS_SHOWSELALWAYS = 0x8
    Local Const $_ARRAYCONSTANT_WS_EX_CLIENTEDGE = 0x0200
    Local Const $_ARRAYCONSTANT_WS_MAXIMIZEBOX = 0x00010000
    Local Const $_ARRAYCONSTANT_WS_MINIMIZEBOX = 0x00020000
    Local Const $_ARRAYCONSTANT_WS_SIZEBOX = 0x00040000
    Local Const $_ARRAYCONSTANT_tagLVITEM = 'int Mask;int Item;int SubItem;int State;int StateMask;ptr Text;int TextMax;int Image;int Param;int Indent;int GroupID;int Columns;ptr pColumns'
    Local Const $_ARRAYCONSTANT_WM_NOTIFY = 0x004E
    Local Const $_ARRAYCONSTANT_TCM_GETCURSEL = (0x1300 + 11)
    Local Const $_ARRAYCONSTANT_GUI_WS_EX_PARENTDRAG = 0x00100000
    Local $iAddMask = BitOR($_ARRAYCONSTANT_LVIF_TEXT, $_ARRAYCONSTANT_LVIF_PARAM)
    Local $tBuffer = DllStructCreate('wchar Text[' & $iBuffer & ']'), $pBuffer = DllStructGetPtr($tBuffer)
    Local $tItem = DllStructCreate($_ARRAYCONSTANT_tagLVITEM), $pItem = DllStructGetPtr($tItem)
    DllStructSetData($tItem, 'Param', 0)
    DllStructSetData($tItem, 'Text', $pBuffer)
    DllStructSetData($tItem, 'TextMax', $iBuffer)
    Local $hListView[$3DiUB]
    Local $iWidth = 640, $iHeight = 480
    Global $hArrayDisplayListView[$3DiUB]
    Local $hGUI = GUICreate($sTitle, $iWidth, $iHeight, Default, Default, BitOR($_ARRAYCONSTANT_WS_SIZEBOX, $_ARRAYCONSTANT_WS_MINIMIZEBOX, $_ARRAYCONSTANT_WS_MAXIMIZEBOX))
    Local $aiGUISize = WinGetClientSize($hGUI)
    Global $hArrayDisplayGUI = $hGUI
    Local $Tab = GUICtrlCreateTab(Default, Default, $aiGUISize[0] + 2, $aiGUISize[1] - 48)
    Local $hCopy = GUICtrlCreateButton('Copy Selected', 3, $aiGUISize[1] - 23, $aiGUISize[0] - 6, 20)
    If $3DiUB > 1 Then
    For $i = 0 To $3DiUB - 1
    GUICtrlCreateTabItem('D' & $i)
    $hListView[$i] = GUICtrlCreateListView($sHeader, 0, 22, $aiGUISize[0], $aiGUISize[1] - 48, $_ARRAYCONSTANT_LVS_SHOWSELALWAYS)
    GUICtrlSetResizing($hListView[$i], $_ARRAYCONSTANT_GUI_DOCKBORDERS)
    $hArrayDisplayListView[$i] = $hListView[$i]
    Next
    Else
    $hListView[0] = GUICtrlCreateListView($sHeader, 0, 0, $aiGUISize[0], $aiGUISize[1] - 26, $_ARRAYCONSTANT_LVS_SHOWSELALWAYS)
    GUICtrlSetResizing($hListView[0], $_ARRAYCONSTANT_GUI_DOCKBORDERS)
    $hArrayDisplayListView[0] = $hListView[0]
    EndIf
    GUICtrlSetResizing($Tab, $GUI_DOCKTOP + $GUI_DOCKLEFT + $GUI_DOCKRIGHT + $GUI_DOCKBOTTOM)
    GUICtrlSetResizing($hCopy, $_ARRAYCONSTANT_GUI_DOCKLEFT + $_ARRAYCONSTANT_GUI_DOCKRIGHT + $_ARRAYCONSTANT_GUI_DOCKBOTTOM + $_ARRAYCONSTANT_GUI_DOCKHEIGHT)
    GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_SETEXTENDEDLISTVIEWSTYLE, $_ARRAYCONSTANT_LVS_EX_GRIDLINES, $_ARRAYCONSTANT_LVS_EX_GRIDLINES)
    GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_SETEXTENDEDLISTVIEWSTYLE, $_ARRAYCONSTANT_LVS_EX_FULLROWSELECT, $_ARRAYCONSTANT_LVS_EX_FULLROWSELECT)
    GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_SETEXTENDEDLISTVIEWSTYLE, $_ARRAYCONSTANT_WS_EX_CLIENTEDGE, $_ARRAYCONSTANT_WS_EX_CLIENTEDGE)
    Local $aItem
    For $i = 0 To $iUBound
    If ($3DiUB > 1) Then
    For $3D = 0 To $3DiUB - 1
    If GUICtrlCreateListViewItem($avArrayText[$i][$3D], $hListView[$3D]) = 0 Then
    $aItem = StringSplit($avArrayText[$i][$3D], $sSeparator)
    DllStructSetData($tBuffer, 'Text', $aItem[1])
    DllStructSetData($tItem, 'Item', $i)
    DllStructSetData($tItem, 'SubItem', 0)
    DllStructSetData($tItem, 'Mask', $iAddMask)
    GUICtrlSendMsg($hListView[$i], $_ARRAYCONSTANT_LVM_INSERTITEMW, 0, $pItem)
    DllStructSetData($tItem, 'Mask', $_ARRAYCONSTANT_LVIF_TEXT)
    For $j = 2 To $aItem[0]
    DllStructSetData($tBuffer, 'Text', $aItem[$j])
    DllStructSetData($tItem, 'SubItem', $j - 1)
    GUICtrlSendMsg($hListView[$i], $_ARRAYCONSTANT_LVM_SETITEMW, 0, $pItem)
    Next
    EndIf
    Next
    Else
    If GUICtrlCreateListViewItem($avArrayText[$i][0], $hListView[0]) = 0 Then
    $aItem = StringSplit($avArrayText[$i][0], $sSeparator)
    DllStructSetData($tBuffer, 'Text', $aItem[1])
    DllStructSetData($tItem, 'Item', $i)
    DllStructSetData($tItem, 'SubItem', 0)
    DllStructSetData($tItem, 'Mask', $iAddMask)
    GUICtrlSendMsg($hListView[0], $_ARRAYCONSTANT_LVM_INSERTITEMW, 0, $pItem)
    DllStructSetData($tItem, 'Mask', $_ARRAYCONSTANT_LVIF_TEXT)
    For $j = 2 To $aItem[0]
    DllStructSetData($tBuffer, 'Text', $aItem[$j])
    DllStructSetData($tItem, 'SubItem', $j - 1)
    GUICtrlSendMsg($hListView[0], $_ARRAYCONSTANT_LVM_SETITEMW, 0, $pItem)
    Next
    EndIf
    EndIf
    Next
    $iWidth = 0
    For $i = 0 To $iSubMax + 1
    $iWidth += GUICtrlSendMsg($hListView[0], $_ARRAYCONSTANT_LVM_GETCOLUMNWIDTH, $i, 0)
    Next
    If $iWidth < 250 Then $iWidth = 230
    $iWidth += 20
    If $iWidth > @DesktopWidth Then $iWidth = @DesktopWidth - 100
    WinMove($hGUI, '', (@DesktopWidth - $iWidth) / 2, Default, $iWidth)
    GUISetState(@SW_SHOW, $hGUI)
    GUIRegisterMsg($_ARRAYCONSTANT_WM_NOTIFY, 'WM_DISPLAY_NOTIFY')
    Global $a_msgARRAY_DISPLAY
    If Not IsDeclared('hSubGUI') Then Global $hSubGUI
    While 1
    $a_msgARRAY_DISPLAY = GUIGetMsg(1)
    Switch $a_msgARRAY_DISPLAY[0]
    Case $_ARRAYCONSTANT_GUI_EVENT_CLOSE
    If ($a_msgARRAY_DISPLAY[1] = $hGUI) Then
    ExitLoop
    Else
    GUIDelete($hSubGUI)
    EndIf
    Case $hCopy
    Local $sClip = ''
    Local $aiCurItems[1] = [0]
    Local $HWnd = GUICtrlSendMsg($Tab, $_ARRAYCONSTANT_TCM_GETCURSEL, 0, 0)
    If (Not $HWnd) Or ($HWnd = -1) Then $HWnd = 0
    For $i = 0 To GUICtrlSendMsg($hListView[$HWnd], $_ARRAYCONSTANT_LVM_GETITEMCOUNT, 0, 0)
    If GUICtrlSendMsg($hListView[$HWnd], $_ARRAYCONSTANT_LVM_GETITEMSTATE, $i, 0x2) Then
    $aiCurItems[0] += 1
    ReDim $aiCurItems[$aiCurItems[0] + 1]
    $aiCurItems[$aiCurItems[0]] = $i
    EndIf
    Next
    If Not $aiCurItems[0] Then
    For $sItem = 0 To UBound($avArrayText) - 1
    $sClip &= $avArrayText[$sItem][$HWnd] & @CRLF
    ConsoleWrite('1Array lauf : ' & $sClip & @CRLF)
    Next
    Else
    For $i = 1 To UBound($aiCurItems) - 1
    $sClip &= $avArrayText[$aiCurItems[$i]][$HWnd] & @CRLF
    ConsoleWrite('2Array lauf : ' & $sClip & @CRLF)
    Next
    EndIf
    ClipPut($sClip)
    EndSwitch
    WEnd
    GUIDelete($hGUI)
    Opt('GUIOnEventMode', $iOnEventMode)
    Opt('GUIDataSeparatorChar', $sDataSeparatorChar)
    Return 1
    EndFunc ;==>_ArrayMultiDisplay

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

    Func WM_DISPLAY_NOTIFY($HWnd, $iMsg, $iwParam, $ilParam)
    If Not IsDeclared('hArrayDisplayListView') Then Local $hArrayDisplayListView
    If Not IsDeclared('avArrayMultiDisplay') Then Local $avArrayMultiDisplay
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView, $lwHw
    Local Const $USEtagNMHDR = 'hwnd hWndFrom;int IDFrom;int Code'
    Local Const $USEtagNMITEMACTIVATE = 'hwnd hWndFrom;int IDFrom;int Code;int Index;int SubItem;int NewState;int OldState;' & _
    'int Changed;int X;int Y;int lParam;int KeyFlags'
    $tNMHDR = DllStructCreate($USEtagNMHDR, $ilParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, 'hWndFrom'))
    $iIDFrom = DllStructGetData($tNMHDR, 'IDFrom')
    $iCode = DllStructGetData($tNMHDR, 'Code')
    For $i = 0 To UBound($hArrayDisplayListView) - 1
    If ($hWndFrom = GUICtrlGetHandle($hArrayDisplayListView[$i])) Then
    $hWndListView = GUICtrlGetHandle($hArrayDisplayListView[$i])
    $lwHw = $i
    ExitLoop
    EndIf
    Next
    Switch $hWndFrom
    Case $hWndListView
    Switch $iCode
    Case -5
    Local $tInfo = DllStructCreate($USEtagNMITEMACTIVATE, $ilParam)
    Local $ItemIndex = DllStructGetData($tInfo, 'Index'), $SubIndex = DllStructGetData($tInfo, 'SubItem')
    If _GUICtrlListView_GetItemText($hWndListView, $ItemIndex, $SubIndex) = '[SubArray]' Then
    If Not IsArray($avArrayMultiDisplay) Then Return 0
    Local $avArraySub
    If (UBound($avArrayMultiDisplay, 0) = 3) Then
    $avArraySub = $avArrayMultiDisplay[$ItemIndex][$SubIndex - 1][$lwHw]
    ElseIf (UBound($avArrayMultiDisplay, 0) = 2) Then
    $avArraySub = $avArrayMultiDisplay[$ItemIndex][$SubIndex - 1]
    Else
    $avArraySub = $avArrayMultiDisplay[$ItemIndex]
    EndIf
    If Not IsDeclared('hArrayDisplayGUI') Then Local $hArrayDisplayGUI
    Local $aMainPos = WinGetPos($hArrayDisplayGUI)
    Local $hSubGUI = GUICreate('SubArray', 640, 480, -1, -1, Default, 0x00000040, $hArrayDisplayGUI)
    Local $sItemText, $ub2nd, $sHeaderLV = 'Row | Col 1'
    If (UBound($avArraySub, 2) > 1) Then
    $ub2nd = True
    $sHeaderLV = 'Row | '
    For $j = 0 To UBound($avArraySub, 2) - 1
    $sHeaderLV &= 'Col ' & $j & ' | '
    Next
    $sHeaderLV = StringTrimRight($sHeaderLV, 2)
    Else
    $ub2nd = False
    EndIf
    Local $hSubLV = GUICtrlCreateListView($sHeaderLV, 0, 0, 640, 480, Default, 0x00000001)
    For $i = 0 To UBound($avArraySub) - 1
    $sItemText = '[' & $i & ']' & '|'
    If $ub2nd Then
    For $j = 0 To UBound($avArraySub, 2) - 1
    $sItemText &= $avArraySub[$i][$j] & '|'
    Next
    $sItemText = StringTrimRight($sItemText, 1)
    Else
    $sItemText &= $avArraySub[$i]
    EndIf
    GUICtrlCreateListViewItem($sItemText, $hSubLV)
    Next
    GUISetState(@SW_SHOW, $hSubGUI)
    EndIf
    EndSwitch
    EndSwitch
    Return 'GUI_RUNDEFMSG'
    EndFunc ;==>WM_DISPLAY_NOTIFY

    [/autoit]

    LG Kleiner

    Dateien

    ArrayMultiDisplay.zip 4,54 kB – 500 Downloads
  • Crown-Master

    • Kleiner
    • 30. September 2010 um 08:27

    Hi Oscar!


    Tolles Design 8) !


    LG Kleiner

  • ein neuer autoitler

    • Kleiner
    • 30. September 2010 um 08:23

    Hallo jared566!

    Willkommen und viel spass!

    LG Kleiner

  • "Lokale" Monats- und Tagesnamen

    • Kleiner
    • 29. September 2010 um 16:20

    Hi!

    Sehr schön!
    Ich habe mir Sorry mir wurde geholfen das so zu lösen!

    Spoiler anzeigen
    [autoit]

    #include <Date.au3>

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

    MsgBox(0, 0,W_Tag( _DateToDayOfWeekISO(@YEAR, @MON, @MDAY)))

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

    Func W_Tag($Tag)
    Local $W_Tag[7] = ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa']
    Return $W_Tag[$Tag]
    EndFunc ;==>W_Tag

    [/autoit]


    Mit den Monaten auch lösbar!

    LG Kleiner

  • Ist es möglich -> Equalizer in AutoIt

    • Kleiner
    • 29. September 2010 um 16:06

    Hi!

    Hife wehr die richtige Adresse!
    Schau mal Erstellt von UEZ Hir


    LG Kleiner

  • [abgeschlossen] µitLight August '10

    • Kleiner
    • 28. September 2010 um 12:55

    Hi!

    Zweiter vielen dank für die blumen!
    Wie vieleicht schon mitbekommen mir geht es vor alle dem um die geschwindikeit bei fast allem was ich in autoit mache ;) .
    Ich habe die Vernam Verschlüsselung soweit ausgereitzt das 2,5 MB in ~30 sec. möglich sind :D


    LG Kleiner

  • Ich weiß nicht warum?

    • Kleiner
    • 12. September 2010 um 14:09

    Hi!

    Habe mich mit einer zweite Exe beholfen.

    Danke!

    Lg Kleiner

  • Ich weiß nicht warum?

    • Kleiner
    • 12. September 2010 um 12:20

    Hi!

    Das heist .... keine Möglichkeit?


    LG Kleiner

  • Ich weiß nicht warum?

    • Kleiner
    • 12. September 2010 um 12:10

    Hi Leute!

    Bastel gerade an ein kleinen SchnellStarter, ich steck in einem prozess fest, ich brauche Adminrechte um in die Regestratur Win7 x64 zu schreiben habe in mein Script eine Func eingebunden die dann nicht mehr Funktioniert.

    Das Script ist so aufgebaut das man die Datei per drag & drop auf die Gui fallen lassen kann das, ergebnis wird in einem Listview angezeigt die Funktione arbeitet nur wenn keine Adminrechte vergeben sind????

    Mach ich was falsch ( Denkfehler) mmmmh....

    Spoiler anzeigen
    [autoit]

    ;#RequireAdmin
    #include <GuiListView.au3>
    #include <GUIConstantsEx.au3>
    #include <ListViewConstants.au3>
    #include <WindowsConstants.au3>

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

    Opt('GUIOnEventMode', 1)

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

    Const $WM_DROPFILES = 0x233
    Global $Form[3]
    Local $aDropFiles[1]
    Local $ListView, $hListView, $Contextmenu, $Contextmenuitem[13]
    Local $Key = 'HKLM\Software\Microsoft\Windows\CurrentVersion\Run'
    Local $Name = 'ASManager'
    Local $Type = 'REG_SZ'

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

    $Form[0] = GUICreate('Start Manager', 400, 300, -1, -1, Default, BitOR($WS_EX_TOPMOST, $WS_EX_ACCEPTFILES))
    GUISetBkColor(0xFFFACD, $Form[0])
    GUISetOnEvent(-3, 'E')

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

    $ListView = GUICtrlCreateListView('', 5, 5, 390, 290, Default, $WS_EX_CLIENTEDGE)
    $hListView = GUICtrlGetHandle($ListView)

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

    GUICtrlSetState(-1, $GUI_DROPACCEPTED)
    _GUICtrlListView_InsertColumn($hListView, 0, 'Datei', 50)
    _GUICtrlListView_InsertColumn($hListView, 1, 'Pfad', 340)

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

    $Contextmenu = GUICtrlCreateContextMenu($ListView)

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

    $Contextmenuitem[0] = GUICtrlCreateMenu('Einstellung', $Contextmenu)
    $Contextmenuitem[1] = GUICtrlCreateMenuItem('Mit Windows Starten', $Contextmenuitem[0])
    GUICtrlSetOnEvent(-1, 'Bearbeiten')
    $Contextmenuitem[2] = GUICtrlCreateMenuItem('Autostarteintrag Löschen', $Contextmenuitem[0])
    GUICtrlSetOnEvent(-1, 'Bearbeiten')

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

    $Contextmenuitem[3] = GUICtrlCreateMenu('Öffnen', $Contextmenu)
    $Contextmenuitem[4] = GUICtrlCreateMenuItem('Starten', $Contextmenuitem[3])
    GUICtrlSetOnEvent(-1, '')
    $Contextmenuitem[5] = GUICtrlCreateMenuItem('Alle Starten', $Contextmenuitem[3])
    GUICtrlSetOnEvent(-1, '')

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

    $Contextmenuitem[6] = GUICtrlCreateMenu('Beenden', $Contextmenu)
    $Contextmenuitem[7] = GUICtrlCreateMenuItem('Schlissen', $Contextmenuitem[6])
    GUICtrlSetOnEvent(-1, '')
    $Contextmenuitem[8] = GUICtrlCreateMenuItem('Alle Schlissen', $Contextmenuitem[6])
    GUICtrlSetOnEvent(-1, '')

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

    $Contextmenuitem[9] = GUICtrlCreateMenu('Löschen', $Contextmenu)
    $Contextmenuitem[10] = GUICtrlCreateMenuItem('Löschen', $Contextmenuitem[9])
    GUICtrlSetOnEvent(-1, '')
    $Contextmenuitem[11] = GUICtrlCreateMenuItem('Alle Löschen', $Contextmenuitem[9])
    GUICtrlSetOnEvent(-1, '')

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

    $Contextmenuitem[12] = GUICtrlCreateMenuItem('Exit', $Contextmenu)
    GUICtrlSetOnEvent(-1, '')

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

    GUISetState()
    GUIRegisterMsg($WM_DROPFILES, 'WM_DROPFILES_FUNC')

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

    Func Bearbeiten()
    If (@GUI_CtrlId = $Contextmenuitem[1]) Or (@GUI_CtrlId = $Contextmenuitem[2]) Then
    Dim $HKEY, $KeyPath
    If (@OSArch = 'x64') Then
    $KeyPath = StringRight($Key, StringLen($Key) - StringInStr($Key, '\'))
    $HKEY = StringLeft($Key, StringInStr($Key, '\') - 1)
    $HKEY &= '64\' & $KeyPath
    Else
    $HKEY = $Key
    EndIf
    EndIf
    Switch @GUI_CtrlId
    Case $Contextmenuitem[1]
    If (RegWrite($HKEY, $Name, $Type, @ScriptDir & '\StartManager.exe') = 1) Then Return MsgBox(64, '', ' Auftrag Erfolgreich ausgeführt!', 4)
    Return MsgBox(16, 'Fehler', ' Es ist ein Fehler aufgetreten' & @CR & 'Aufgabe abgebrochen!', 4)
    Case $Contextmenuitem[2]
    If (MsgBox(36, 'Löschne', 'Wollen sie wirklich Löschen?') = 6) Then
    If (RegDelete($HKEY, $Name) = 1) Then Return MsgBox(64, '', ' Auftrag Erfolgreich ausgeführt!', 4)
    Return MsgBox(16, 'Fehler', ' Es ist ein Fehler aufgetreten' & @CR & 'Aufgabe abgebrochen!', 4)
    EndIf
    EndSwitch
    EndFunc ;==>Bearbeiten

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

    Func WM_DROPFILES_FUNC($hWnd, $msgID, $wParam, $lParam)
    Local $nSize, $pFileName
    Local $nAmt = DllCall('shell32.dll', 'int', 'DragQueryFile', 'hwnd', $wParam, 'int', 0xFFFFFFFF, 'ptr', 0, 'int', 255)
    For $i = 0 To $nAmt[0] - 1
    $nSize = DllCall('shell32.dll', 'int', 'DragQueryFile', 'hwnd', $wParam, 'int', $i, 'ptr', 0, 'int', 0)
    $nSize = $nSize[0] + 1
    $pFileName = DllStructCreate('char[' & $nSize & ']')
    DllCall('shell32.dll', 'int', 'DragQueryFile', 'hwnd', $wParam, 'int', $i, 'ptr', DllStructGetPtr($pFileName), 'int', $nSize)
    ReDim $aDropFiles[$i + 1]
    $aDropFiles[$i] = DllStructGetData($pFileName, 1)
    $pFileName = 0
    Next
    _GUICtrlListView_BeginUpdate($hListView)
    For $i = 0 To UBound($aDropFiles) - 1
    _GUICtrlListView_AddItem($hListView, FileName($aDropFiles[$i]), _GUICtrlListView_GetItemCount($hListView) - 1)
    _GUICtrlListView_AddSubItem($hListView, _GUICtrlListView_GetItemCount($hListView) - 1, $aDropFiles[$i], 1)
    Next
    _GUICtrlListView_SetColumnWidth($hListView, 0, $LVSCW_AUTOSIZE)
    _GUICtrlListView_SetColumnWidth($hListView, 1, $LVSCW_AUTOSIZE)
    _GUICtrlListView_EndUpdate($hListView)
    EndFunc ;==>WM_DROPFILES_FUNC

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

    Func GetListViewToArray()
    Local $UB = _GUICtrlListView_GetItemCount($hListView)
    Local $GCount[$UB + 1][2]
    $GCount[0][0] = $UB
    For $i = 1 To $GCount[0][0]
    $GCount[$i][0] = _GUICtrlListView_GetItemText($hListView, ($i - 1))
    $GCount[$i][1] = _GUICtrlListView_GetItemText($hListView, ($i - 1), 1)
    Next
    Return $GCount
    EndFunc ;==>GetListViewToArray

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

    Func FileName($Path_Datei)
    ;Ausgabe: Datei Name
    Local $FileName = ObjCreate('Scripting.FileSystemObject')
    If @error Then Return SetError(1, 1, -1)
    Return $FileName.GetFileName($Path_Datei)
    EndFunc ;==>FileName

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

    Func Form_HIDE()
    GUISetState(@SW_HIDE, @GUI_WinHandle)
    EndFunc ;==>Form_HIDE

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

    Func E()
    Dim $Save = GetListViewToArray()
    If IsArray($Save) Then
    For $i = 1 To $Save[0][0]
    IniWrite(@ScriptDir & '\ASManager.ini', 'SetAS', $Save[$i][0], $Save[$i][1])
    Next
    EndIf
    Exit
    EndFunc ;==>E

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

    While 1 * Sleep(10)
    WEnd

    [/autoit]


    LG Kleiner

  • Transparente Combobox (OwnCombo)

    • Kleiner
    • 8. September 2010 um 21:57

    Hi funkey!


    Finde ich sehr geil! :thumbup:

    Edit:/ Frage was haben die Codezeilen auf sich bei mir 50% CPU auslastung: geendert in While alles gut! ;)

    Spoiler anzeigen
    [autoit]

    Do
    Until GUIGetMsg() = -3

    [/autoit]

    LG Kleiner

  • StringRegExp funktioniert nicht bei Array?

    • Kleiner
    • 5. September 2010 um 00:16

    Hi!


    Zeig bitte dein ganzen Code, denn wie dein Bespiel erstmal steht Funktioniert´s!


    LG Kleiner

  • Drei kleine Helfer ( ArrayFilter,Arrayfreememory,Choose)

    • Kleiner
    • 4. September 2010 um 22:13

    Hi PrideRage!


    Schön das sie dir Gefallen und nutzen bringen! :rolleyes:


    LG Kleiner

  • Drei kleine Helfer ( ArrayFilter,Arrayfreememory,Choose)

    • Kleiner
    • 4. September 2010 um 11:06

    Hi Leute !

    Nichts wildes!
    Habe hir drei kleine Helfe Funktionen, vieleicht braucht sie ja jemand! :)

    1._ArrayFilter: ausgabe der durch angabe eines Filter 1D/2D
    2._Arrayfreememory: ausgabe der leeren Index´e oder angabe in % für frei/belegt/anzal der gefundenen
    3.Choose: ausgabe von übergeben Index eines Array oder String

    Beispiel:

    Spoiler anzeigen
    [autoit]

    #include 'Array.au3'
    #include 'FFC_Array.au3'
    Dim $TestA[10000][8]
    For $i = 0 To 9999
    $TestA[$i][0] = Chr(Random(65, 90, 1)) & Chr(Random(65, 80, 1))
    $TestA[$i][1] = Chr(Random(65, 68, 1)) & Chr(Random(65, 72, 1))
    $TestA[$i][2] = Chr(Random(65, 78, 1)) & Chr(Random(65, 90, 1))
    $TestA[$i][3] = Chr(Random(65, 90, 1)) & Chr(Random(65, 68, 1))
    $TestA[$i][4] = Chr(Random(65, 90, 1)) & Chr(Random(65, 80, 1))
    $TestA[$i][5] = Chr(Random(65, 68, 1)) & Chr(Random(65, 72, 1))
    $TestA[$i][6] = Chr(Random(65, 78, 1)) & Chr(Random(65, 90, 1))
    $TestA[$i][7] = Chr(Random(65, 90, 1)) & Chr(Random(65, 68, 1))
    Next

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

    _ArrayDisplay($TestA, ' Vorher ')
    MsgBox(0, 0, 'Start _ArrayFilter()', 2)
    Local $iTimer = TimerInit()
    Dim $TEst = _ArrayFilter($TestA, 'AC')
    MsgBox(0, 0, 'End _ArrayFilter()' & @TAB & 'Time : ' & Round(TimerDiff($iTimer)), 4)
    _ArrayDisplay($TEst, 'Nachher')
    MsgBox(0, 0, 'Start _Arrayfreememory() ausgaben memory', 2)
    Local $iTimer = TimerInit()
    Dim $was = _Arrayfreememory($TEst, 1)
    MsgBox(0, 0, 'End _Arrayfreememory() ' & $was[0] & @TAB & 'Time : ' & Round(TimerDiff($iTimer)), 4)
    MsgBox(0, 0, 'Start _Arrayfreememory() ausgaben Arraymemory mit den gefundenen Index', 2)
    Local $iTimer = TimerInit()
    Dim $was = _Arrayfreememory($TEst)
    _ArrayDisplay($was, Round(TimerDiff($iTimer)))
    MsgBox(0, 0, '_Choose($TEst , (Array 1) ,(SubArray 1)) = ' & Choose($TestA, 1, 1), 4)

    [/autoit]


    Code:

    Spoiler anzeigen
    [autoit]

    ; #FUNCTION# ;=============================================================================================
    ;
    ; Name...........: _ArrayFilter
    ; Description ...: Filtert nach dem gewünschen Kriterien
    ; Syntax.........: _ArrayFilter(ByRef [$aInput, [$value]])
    ; Parameters ....: $aInput - Array1D o. Array2D / $value - nach den angegebenen Kriterien wobei leer string
    ; nicht als Filter angenommen wird.
    ; Return values .: Erfolg - 1D-Array o. Array2D mit den Gefilterten Ergebnisse mit neu angepassten Index
    ;
    ; Fehler - Gibt -1 zurück und setzt @error:
    ; |1 - Keine Array / Kriterium nicht übergeben
    ; |0 - wenn keine Übereinstimmung
    ;
    ; Author ........: Kleiner (http://www.AutoIT.de)
    ; Modified.......:
    ; Remarks .......:
    ; Related .......:
    ; Link ..........;
    ; Example .......; H_Index_A() - Hilfe Index
    ; ;=========================================================================================================
    Func _ArrayFilter(ByRef $aInput, $value)
    If Not IsArray($aInput) Then Return SetError(1, 0, -1)
    If Not $value Then Return SetError(2, 0, -1)
    Local $aIndex
    Local $UB = UBound($aInput)
    Local $UB_2D = UBound($aInput, 2)
    If (@error = 2) Then
    For $i = 0 To $UB - 1
    If ($aInput[$i] = $value) Then $aIndex &= '|' & $i
    Next
    If $aIndex Then Return StringSplit(StringTrimLeft($aIndex, 1), '|')
    Else
    For $i = 0 To $UB - 1
    For $e = 0 To $UB_2D - 1
    If ($aInput[$i][$e] = $value) Then $aIndex &= ';' & $i & '|' & $e
    Next
    Next
    If $aIndex Then
    Dim $iIn, $iIn_n
    $aIndex = StringSplit(StringTrimLeft($aIndex, 1), ';')
    Dim $F_Array[$aIndex[0]][$UB_2D]
    For $i = 1 To $aIndex[0]
    $iIn = StringSplit($aIndex[$i], '|')
    $iIn_n = H_Index_A($F_Array, $iIn[2])
    $F_Array[$iIn_n][$iIn[2]] = $aInput[$iIn[1]][$iIn[2]]
    Next
    ReDim $F_Array[$iIn_n + 1][$UB_2D]
    Return $F_Array
    EndIf
    EndIf
    Return SetError(1, 0, 0)
    EndFunc ;==>_ArrayFilter

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

    Func H_Index_A(ByRef $F_Array, $value)
    For $i = 0 To UBound($F_Array) - 1
    If Not $F_Array[$i][$value] Then Return $i
    Next
    EndFunc ;==>H_Index_A
    ; #FUNCTION# ;=============================================================================================
    ;
    ; Name...........: _Arrayfreememory
    ; Description ...: Gib den Freien | Belegten | Gefundene (Gesamt) u. wenn gewünscht Index
    ; Syntax.........: _Arrayfreememory(ByRef [$aData, [$nMem = 0]])
    ; Parameters ....: $aData - Array1D o. Array2D / $nMem - 0/ für nur ausgaben in % Frei|Belegt|(G)Anzal
    ; 1/ mit Index an welcher stelle sich der lerre
    ; Index befindet.
    ; Return values .: Erfolg - 1D-Array mit zB. 15% |85% | 180
    ;
    ; Fehler - Gibt -1 zurück und setzt @error:
    ; |1 - Keine Array
    ; |0 - wenn keine leer Index gefunden
    ;
    ; Author ........: Kleiner (http://www.AutoIT.de)
    ; Modified.......:
    ; Remarks .......:
    ; Related .......:
    ; Link ..........;
    ; Example .......;
    ; ;=========================================================================================================
    Func _Arrayfreememory(ByRef $aData, $nMem = 0)
    If Not IsArray($aData) Then Return SetError(1, 0, -1)
    Local $aIndex
    Local $UB = UBound($aData)
    Local $UB_2D = UBound($aData, 2)
    If (@error = 2) Then
    For $i = 0 To $UB - 1
    If Not $aData[$i] Or ($aData[$i] = ' ') And Not IsNumber($aData[$i]) Then $aIndex &= '|' & $i
    Next
    If $aIndex Then
    $aIndex = StringSplit(StringTrimLeft($aIndex, 1), '|')
    Dim $Freememory[UBound($aIndex)]
    Dim $Free_M = Round(($UB * 100) / ($aIndex[0]), 3)
    $Freememory[0] = $Free_M & '% | ' & (100 - $Free_M) & '% | ' & $aIndex[0]
    If $nMem Then
    ReDim $Freememory[1]
    Return $Freememory
    Else
    For $i = 1 To $aIndex[0]
    $Freememory[$i] = $aIndex[$i]
    Next
    Return $Freememory
    EndIf
    EndIf
    Else
    For $i = 0 To $UB - 1
    For $e = 0 To $UB_2D - 1
    If Not $aData[$i][$e] Or ($aData[$i][$e] = ' ') And Not IsNumber($aData[$i][$e]) Then $aIndex &= ';' & $i & '|' & $e
    Next
    Next
    If $aIndex Then
    $aIndex = StringSplit(StringTrimLeft($aIndex, 1), ';')
    Dim $Freememory[UBound($aIndex)]
    Dim $Free_M = Round((($aIndex[0] * 100) / ($UB * $UB_2D)), 3)
    $Freememory[0] = $Free_M & '% | ' & (100 - $Free_M) & '% | ' & $aIndex[0]
    If $nMem Then
    ReDim $Freememory[1]
    Return $Freememory
    Else
    For $i = 1 To $aIndex[0]
    $Freememory[$i] = $aIndex[$i]
    Next
    Return $Freememory
    EndIf
    EndIf
    EndIf
    Return SetError(1, 0, 0)
    EndFunc ;==>_Arrayfreememory
    ; #FUNCTION# ;=============================================================================================
    ;
    ; Name...........: Choose
    ; Description ...: Gib änlich wie bei GUICtrlRead von einem Array den Inhalt wieder o. wie bei StringSplit
    ; könnte man auch nennen StringToArray , die stelle aus, die im Index/SubIndex übergeben.
    ; Syntax.........: Choose($a_sData, Const $index = 1, Const $Sub_Index = 0, $Delim = ',')
    ; Parameters ....: $a_sData - Array1D o. Array2D o. String / $index für 1D / $Sub_Index für 2D / $Delim zum trennen
    ; des String
    ;
    ; Return values .: Erfolg - ausgabe vom Gewünschten Index(Inhalt)
    ;
    ; Fehler - $index/SubIndex größer als UBound
    ;
    ; Author ........: Kleiner (http://www.AutoIT.de)
    ; Modified.......:
    ; Remarks .......:
    ; Related .......:
    ; Link ..........;
    ; Example .......;
    ; ;=========================================================================================================
    Func Choose($a_sData, Const $index = 1, Const $Sub_Index = 0, $Delim = ',')
    If IsArray($a_sData) Then
    If ($index > UBound($a_sData) - 1) Then Return 0
    Local $UB = UBound($a_sData, 2)
    If (@error = 2) Then
    Return $a_sData[$index]
    Else
    If ($Sub_Index > $UB - 1) Then Return 0
    Return $a_sData[$index][$Sub_Index]
    EndIf
    Else
    If Not $a_sData Then Return 0
    Local $sSplit = StringSplit($a_sData, $Delim)
    If ($index > UBound($sSplit) - 1) Then Return 0
    Return $sSplit[$index + 1]
    EndIf
    EndFunc ;==>Choose

    [/autoit]

    Viel spass!

    Lg Kleiner

    Dateien

    FFC_Array.zip 2,25 kB – 330 Downloads
  • GDI+ Zoomer

    • Kleiner
    • 3. September 2010 um 00:56

    Hi UEZ!


    Schön geworden!
    GDI ist schon eine feine sache, habe mich bis heute nicht einmal versucht :rolleyes: !


    Lg kleiner

  • Liste soll .txt Datei einlesen...

    • Kleiner
    • 3. September 2010 um 00:53

    edit:/ Es reicht auch $WS_VSCROLL als BitOR($WS_BORDER, $WS_VSCROLL, $LBS_NOTIFY, $LBS_DISABLENOSCROLL, $WS_HSCROLL)


    Lg Kleiner

  • Liste soll .txt Datei einlesen...

    • Kleiner
    • 3. September 2010 um 00:49

    Hi!


    Probier das beispiel! ;)

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <File.au3>

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

    $sFilePath = @ScriptDir & "\........txt"

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

    Global $links

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

    $Form3 = GUICreate("Form1", 405, 296, 302, 218)
    $List1 = GUICtrlCreateList("", 16, 8, 185, 266, BitOR($WS_BORDER, $WS_VSCROLL, $LBS_NOTIFY, $LBS_DISABLENOSCROLL, $WS_HSCROLL))
    ;$Button1 = GUICtrlCreateButton("Öffnen", 216, 16, 115, 25)
    _FileReadToArray($sFilePath, $links)
    For $i = 1 To $links[0]
    _GUICtrlListBox_AddString($List1, $links[$i])
    Next
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

    [/autoit]

    Pfad anpassen!

    Lg Kleiner

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™