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

Beiträge von Speedy86

  • Context Menu Button mit Scrollbar oder vergrößern

    • Speedy86
    • 11. Oktober 2020 um 23:20

    Hi Bugfix,

    Deine Variante würde mir besser gefallen.

    Aber kann ich das auf ein Button anwenden ?

    lg

    Speedy

  • Context Menu Button mit Scrollbar oder vergrößern

    • Speedy86
    • 9. Oktober 2020 um 11:08

    Hi,

    Meinst du das hier BuxFix:

    mehrspaltige-listview-selected-items

    Ich finde es mit GUICtrlCreateListView glaub ich würde es funktionieren aber da kann ich es nicht mit den Button aufrufen :)

    muss ich da ein Child Gui erstellen ?


    @ alpines Ich habe es eh mit ein array und mit ein csv datei. aber das ganze Programm ist zu groß :) deshalb hab ich es so schnell geschrieben.

    lg

  • Context Menu Button mit Scrollbar oder vergrößern

    • Speedy86
    • 8. Oktober 2020 um 23:46

    Hallo,

    Leider stehe ich wieder einmal an und finde zu diesen Thema nix, vielleicht hat es wer von euch schon mal erstellt.

    Immer wenn die Liste länger als der Bildschirm wird muss ich mit einzelenen klickt runter scrolen.

    gibts hier nicht eine bessere lösung ?


    Hier das komplette script:

    C
    #include <GUIConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <MsgBoxConstants.au3>
    #include <WindowsConstants.au3>
    
    $hGUI = GUICreate("Test", 400, 600, 0, 0)
    
    #Region Button
    
    $1bh = GUICtrlCreateButton("Test 1", 100, 118, 60, 40)
    $1Context = GUICtrlCreateContextMenu($1bh)
    $1MenuItem1 = GUICtrlCreateMenuItem("Line Test 1", $1Context)
    $1MenuItem2 = GUICtrlCreateMenuItem("Line Test 2", $1Context)
    $1MenuItem3 = GUICtrlCreateMenuItem("Line Test 3", $1Context)
    $1MenuItem4 = GUICtrlCreateMenuItem("Line Test 4", $1Context)
    $1MenuItem5 = GUICtrlCreateMenuItem("Line Test 5", $1Context)
    $1MenuItem6 = GUICtrlCreateMenuItem("Line Test 1", $1Context)
    $1MenuItem7 = GUICtrlCreateMenuItem("Line Test 2", $1Context)
    $1MenuItem8 = GUICtrlCreateMenuItem("Line Test 3", $1Context)
    $1MenuItem9 = GUICtrlCreateMenuItem("Line Test 4", $1Context)
    $1MenuItem10 = GUICtrlCreateMenuItem("Line Test 5", $1Context)
    $1MenuItem11 = GUICtrlCreateMenuItem("Line Test 1", $1Context)
    $1MenuItem12 = GUICtrlCreateMenuItem("Line Test 2", $1Context)
    $1MenuItem13 = GUICtrlCreateMenuItem("Line Test 3", $1Context)
    $1MenuItem14 = GUICtrlCreateMenuItem("Line Test 4", $1Context)
    $1MenuItem15 = GUICtrlCreateMenuItem("Line Test 5", $1Context)
    $1MenuItem16 = GUICtrlCreateMenuItem("Line Test 1", $1Context)
    $1MenuItem17 = GUICtrlCreateMenuItem("Line Test 2", $1Context)
    $1MenuItem18 = GUICtrlCreateMenuItem("Line Test 3", $1Context)
    $1MenuItem19 = GUICtrlCreateMenuItem("Line Test 4", $1Context)
    $1MenuItem20 = GUICtrlCreateMenuItem("Line Test 5", $1Context)
    $1MenuItem21 = GUICtrlCreateMenuItem("Line Test 1", $1Context)
    $1MenuItem22 = GUICtrlCreateMenuItem("Line Test 2", $1Context)
    $1MenuItem23 = GUICtrlCreateMenuItem("Line Test 3", $1Context)
    $1MenuItem24 = GUICtrlCreateMenuItem("Line Test 4", $1Context)
    $1MenuItem25 = GUICtrlCreateMenuItem("Line Test 5", $1Context)
    $1MenuItem26 = GUICtrlCreateMenuItem("Line Test 1", $1Context)
    $1MenuItem27 = GUICtrlCreateMenuItem("Line Test 2", $1Context)
    $1MenuItem28 = GUICtrlCreateMenuItem("Line Test 3", $1Context)
    $1MenuItem29 = GUICtrlCreateMenuItem("Line Test 4", $1Context)
    $1MenuItem30 = GUICtrlCreateMenuItem("Line Test 5", $1Context)
    $1MenuItem31 = GUICtrlCreateMenuItem("Line Test 1", $1Context)
    $1MenuItem32 = GUICtrlCreateMenuItem("Line Test 2", $1Context)
    $1MenuItem33 = GUICtrlCreateMenuItem("Line Test 3", $1Context)
    $1MenuItem34 = GUICtrlCreateMenuItem("Line Test 4", $1Context)
    $1MenuItem35 = GUICtrlCreateMenuItem("Line Test 5", $1Context)
    $1MenuItem36 = GUICtrlCreateMenuItem("Line Test 1", $1Context)
    $1MenuItem37 = GUICtrlCreateMenuItem("Line Test 2", $1Context)
    $1MenuItem38 = GUICtrlCreateMenuItem("Line Test 3", $1Context)
    $1MenuItem39 = GUICtrlCreateMenuItem("Line Test 4", $1Context)
    $1MenuItem40 = GUICtrlCreateMenuItem("Line Test 5", $1Context)
    $1MenuItem41 = GUICtrlCreateMenuItem("Line Test 1", $1Context)
    $1MenuItem42 = GUICtrlCreateMenuItem("Line Test 2", $1Context)
    $1MenuItem43 = GUICtrlCreateMenuItem("Line Test 3", $1Context)
    $1MenuItem44 = GUICtrlCreateMenuItem("Line Test 4", $1Context)
    $1MenuItem45 = GUICtrlCreateMenuItem("Line Test 5", $1Context)
    $1MenuItem46 = GUICtrlCreateMenuItem("Line Test 1", $1Context)
    $1MenuItem47 = GUICtrlCreateMenuItem("Line Test 2", $1Context)
    $1MenuItem48 = GUICtrlCreateMenuItem("Line Test 3", $1Context)
    $1MenuItem49 = GUICtrlCreateMenuItem("Line Test 4", $1Context)
    $1MenuItem50 = GUICtrlCreateMenuItem("Line Test 5", $1Context)
    $1MenuItem51 = GUICtrlCreateMenuItem("Line Test 1", $1Context)
    $1MenuItem52 = GUICtrlCreateMenuItem("Line Test 2", $1Context)
    $1MenuItem53 = GUICtrlCreateMenuItem("Line Test 3", $1Context)
    $1MenuItem54 = GUICtrlCreateMenuItem("Line Test 4", $1Context)
    $1MenuItem55 = GUICtrlCreateMenuItem("Line Test 5", $1Context)
    $1MenuItem56 = GUICtrlCreateMenuItem("Line Test 1", $1Context)
    $1MenuItem57 = GUICtrlCreateMenuItem("Line Test 2", $1Context)
    $1MenuItem58 = GUICtrlCreateMenuItem("Line Test 3", $1Context)
    $1MenuItem59 = GUICtrlCreateMenuItem("Line Test 4", $1Context)
    $1MenuItem60 = GUICtrlCreateMenuItem("Line Test 5", $1Context)
    GUICtrlSetFont($1bh, 8.5, 500, 0, "")
    #EndRegion Button
    
    
    GUISetState(@SW_SHOW)
    
    While 1
        Sleep(10)
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                Exit
            Case $1bh
                ShowMenu($hGUI, $nMsg, $1Context)
            Case $1MenuItem1
                GUICtrlSetData($1bh, "Line Test 1")
            Case $1MenuItem2
                GUICtrlSetData($1bh, "Line Test 2")
            Case $1MenuItem3
                GUICtrlSetData($1bh, "Line Test 3")
            Case $1MenuItem4
                GUICtrlSetData($1bh, "Line Test 4")
            Case $1MenuItem5
                GUICtrlSetData($1bh, "Line Test 5")
            Case $1MenuItem6
                GUICtrlSetData($1bh, "Line Test 1")
            Case $1MenuItem7
                GUICtrlSetData($1bh, "Line Test 2")
            Case $1MenuItem8
                GUICtrlSetData($1bh, "Line Test 3")
            Case $1MenuItem9
                GUICtrlSetData($1bh, "Line Test 4")
            Case $1MenuItem10
                GUICtrlSetData($1bh, "Line Test 5")
            Case $1MenuItem11
                GUICtrlSetData($1bh, "Line Test 1")
            Case $1MenuItem12
                GUICtrlSetData($1bh, "Line Test 2")
            Case $1MenuItem13
                GUICtrlSetData($1bh, "Line Test 3")
            Case $1MenuItem14
                GUICtrlSetData($1bh, "Line Test 4")
            Case $1MenuItem15
                GUICtrlSetData($1bh, "Line Test 5")
            Case $1MenuItem16
                GUICtrlSetData($1bh, "Line Test 1")
            Case $1MenuItem17
                GUICtrlSetData($1bh, "Line Test 2")
            Case $1MenuItem18
                GUICtrlSetData($1bh, "Line Test 3")
            Case $1MenuItem19
                GUICtrlSetData($1bh, "Line Test 4")
            Case $1MenuItem20
                GUICtrlSetData($1bh, "Line Test 5")
            Case $1MenuItem21
                GUICtrlSetData($1bh, "Line Test 1")
            Case $1MenuItem22
                GUICtrlSetData($1bh, "Line Test 2")
            Case $1MenuItem23
                GUICtrlSetData($1bh, "Line Test 3")
            Case $1MenuItem24
                GUICtrlSetData($1bh, "Line Test 4")
            Case $1MenuItem25
                GUICtrlSetData($1bh, "Line Test 5")
            Case $1MenuItem26
                GUICtrlSetData($1bh, "Line Test 1")
            Case $1MenuItem27
                GUICtrlSetData($1bh, "Line Test 2")
            Case $1MenuItem28
                GUICtrlSetData($1bh, "Line Test 3")
            Case $1MenuItem29
                GUICtrlSetData($1bh, "Line Test 4")
            Case $1MenuItem30
                GUICtrlSetData($1bh, "Line Test 5")
            Case $1MenuItem31
                GUICtrlSetData($1bh, "Line Test 1")
            Case $1MenuItem32
                GUICtrlSetData($1bh, "Line Test 2")
            Case $1MenuItem33
                GUICtrlSetData($1bh, "Line Test 3")
            Case $1MenuItem34
                GUICtrlSetData($1bh, "Line Test 4")
            Case $1MenuItem35
                GUICtrlSetData($1bh, "Line Test 5")
            Case $1MenuItem36
                GUICtrlSetData($1bh, "Line Test 1")
            Case $1MenuItem37
                GUICtrlSetData($1bh, "Line Test 2")
            Case $1MenuItem38
                GUICtrlSetData($1bh, "Line Test 3")
            Case $1MenuItem39
                GUICtrlSetData($1bh, "Line Test 4")
            Case $1MenuItem40
                GUICtrlSetData($1bh, "Line Test 5")
            Case $1MenuItem41
                GUICtrlSetData($1bh, "Line Test 1")
            Case $1MenuItem42
                GUICtrlSetData($1bh, "Line Test 2")
            Case $1MenuItem43
                GUICtrlSetData($1bh, "Line Test 3")
            Case $1MenuItem44
                GUICtrlSetData($1bh, "Line Test 4")
            Case $1MenuItem45
                GUICtrlSetData($1bh, "Line Test 5")
            Case $1MenuItem46
                GUICtrlSetData($1bh, "Line Test 1")
            Case $1MenuItem47
                GUICtrlSetData($1bh, "Line Test 2")
            Case $1MenuItem48
                GUICtrlSetData($1bh, "Line Test 3")
            Case $1MenuItem49
                GUICtrlSetData($1bh, "Line Test 4")
            Case $1MenuItem50
                GUICtrlSetData($1bh, "Line Test 5")
            Case $1MenuItem51
                GUICtrlSetData($1bh, "Line Test 1")
            Case $1MenuItem52
                GUICtrlSetData($1bh, "Line Test 2")
            Case $1MenuItem53
                GUICtrlSetData($1bh, "Line Test 3")
            Case $1MenuItem54
                GUICtrlSetData($1bh, "Line Test 4")
            Case $1MenuItem55
                GUICtrlSetData($1bh, "Line Test 5")
            Case $1MenuItem56
                GUICtrlSetData($1bh, "Line Test 1")
            Case $1MenuItem57
                GUICtrlSetData($1bh, "Line Test 2")
            Case $1MenuItem58
                GUICtrlSetData($1bh, "Line Test 3")
            Case $1MenuItem59
                GUICtrlSetData($1bh, "Line Test 4")
            Case $1MenuItem60
                GUICtrlSetData($1bh, "Line Test 5")
        EndSwitch
    WEnd
    
    #Region Func
    Func ShowMenu($hWnd, $CtrlID, $nContextID)
        Local $arPos, $x, $y
        Local $hMenu = GUICtrlGetHandle($nContextID)
    
        $arPos = ControlGetPos($hWnd, "", $CtrlID)
    
        $x = $arPos[0]
        $y = $arPos[1] + $arPos[3]
    
        ClientToScreen($hWnd, $x, $y)
        TrackPopupMenu($hWnd, $hMenu, $x, $y)
     EndFunc   ;==>ShowMenu
    ; Convert the client (GUI) coordinates to screen (desktop) coordinates
    Func ClientToScreen($hWnd, ByRef $x, ByRef $y)
        Local $stPoint = DllStructCreate("int;int")
    
        DllStructSetData($stPoint, 1, $x)
        DllStructSetData($stPoint, 2, $y)
    
        DllCall("user32.dll", "int", "ClientToScreen", "hwnd", $hWnd, "ptr", DllStructGetPtr($stPoint))
    
        $x = DllStructGetData($stPoint, 1)
        $y = DllStructGetData($stPoint, 2)
        ; release Struct not really needed as it is a local
        $stPoint = 0
    EndFunc   ;==>ClientToScreen
    ; Show at the given coordinates (x, y) the popup menu (hMenu) which belongs to a given GUI window (hWnd)
    Func TrackPopupMenu($hWnd, $hMenu, $x, $y)
        DllCall("user32.dll", "int", "TrackPopupMenuEx", "hwnd", $hMenu, "int", 0, "int", $x, "int", $y, "hwnd", $hWnd, "ptr", 0)
    EndFunc   ;==>TrackPopupMenu
    #EndRegion Func
    Alles anzeigen

    Ich hab euch ein Bild angehängt damit man es besser sieht was ich meine die 2 Pfeile die oben und unten sind.

    Da würde ich gerene ein Scrollbalken haben.

    lg

    Speedy

    Dateien

    context-menu.jpg 70,44 kB – 0 Downloads
  • txt Log Auswerten

    • Speedy86
    • 5. Oktober 2020 um 11:15

    Hey Musashi Danke,

    die Zahl nach dem von sollten noch in einer eigenen Spalte kommen.

    Damit ich das auch besser sortieren kann.

    hab es so umgebaut:

    Code
    #include <Array.au3>
    Global $g_sFile, $g_aMatches
    $g_sFile    = FileRead(@ScriptDir & "\Log_test.txt")
    $g_aMatches = StringRegExp($g_sFile, "(?i)[-\s]\d+ von \d+", 3)
    Global $g_aMatchesfinal[UBound($g_aMatches)][2]
    _ArrayDisplay($g_aMatches)
    If Not @error Then
        For $i = 0 To UBound($g_aMatches) - 1
            $g_aMatchesfinal[$i][0] = StringReplace(StringStripWS($g_aMatches[$i], 8), 'von', ',')
            $g_aMatchesfinal[$i][1] = StringReplace(StringStripWS($g_aMatches[$i], 8), 'von', ',')
        Next
        _ArrayDisplay($g_aMatchesfinal, "Matches :")
    EndIf
    Alles anzeigen

    Wie muss ich den zweiten such Befehl der 2 Spalte ändern ?

    Das Tut von AspirinJunkie werd ich mir heut oder morgen durchmachen.

    hoff das ich mich mit Regexp dann auch besser auskenne, hab in den Bereich noch gar nix gemacht.

  • File zu array - mit unterschiedliche daten

    • Speedy86
    • 5. Oktober 2020 um 10:51

    Danke

  • txt Log Auswerten

    • Speedy86
    • 5. Oktober 2020 um 09:53

    Danke

  • txt Log Auswerten

    • Speedy86
    • 5. Oktober 2020 um 08:58

    Hallo,

    Ich komm da nicht so ganz weiter.
    Die Grund Funktion will nicht mal bei mir.

    Ich habe folgendes als bsp in ein txt Log stehen:

    Code
    2020-10-01 19:53:13.360     [BBS] Input_coin_NW
    2020-10-01 19:53:13.360     [BBS] addCoin: 10000 von 4
    2020-10-01 19:53:13.371     [BBS] updateAcceptance cashmode: 0
    2020-10-01 19:53:13.371     [BBS]     SendD BS_AA_COINACCEPT
    2020-10-01 19:53:20.250     [BBS] Sys_coin_NW
    2020-10-01 19:53:20.250     [BBS] addCoin: -10000 von 5
    2020-10-01 19:53:20.257     [BBS] updateAcceptance cashmode: 0
    2020-10-01 19:53:20.258     [BBS]     SendD BS_AA_COINACCEPT
    2020-10-01 20:56:46.419     [BBS] Input_coin_NW
    2020-10-01 20:56:46.419     [BBS] addCoin: 20000 von 4
    2020-10-01 20:56:46.429     [BBS] updateAcceptance cashmode: 0
    2020-10-01 20:56:46.429     [BBS]     SendD BS_AA_COINACCEPT
    2020-10-01 20:56:53.961     [BBS] Sys_coin_NW
    2020-10-01 20:56:53.961     [BBS] addCoin: -20000 von 5
    2020-10-01 20:56:53.967     [BBS] updateAcceptance cashmode: 0
    2020-10-01 20:56:53.968     [BBS]     SendD BS_AA_COINACCEPT
    2020-10-01 20:58:21.829     [BBS] Input_coin_NW
    2020-10-01 20:58:21.829     [BBS] addCoin: 1000 von 3
    2020-10-01 20:58:21.840     [BBS] updateAcceptance cashmode: 0
    2020-10-01 20:58:21.840     [BBS]     SendD BS_AA_COINACCEPT
    2020-10-01 20:58:21.840     [BBS] WM_INTCON_FLOAT_LEVEL
    2020-10-01 20:58:21.840     [BBS] updateAcceptance cashmode: 0
    2020-10-01 20:58:21.840     [BBS]     SendD BS_AA_COINACCEPT
    2020-10-01 20:58:23.196     [BBS] Sys_coin_NW
    2020-10-01 20:58:23.196     [BBS] addCoin: -1000 von 5
    2020-10-01 20:58:23.201     [BBS] updateAcceptance cashmode: 0
    2020-10-01 20:58:23.201     [BBS]     SendD BS_AA_COINACCEPT
    2020-10-01 21:10:44.222     [BBS] Input_coin_NW
    2020-10-01 21:10:44.222     [BBS] addCoin: 20000 von 4
    2020-10-01 21:10:44.232     [BBS] updateAcceptance cashmode: 0
    2020-10-01 21:10:44.232     [BBS]     SendD BS_AA_COINACCEPT
    2020-10-01 21:11:09.492     [BBS] Sys_coin_NW
    2020-10-01 21:11:09.492     [BBS] addCoin: -2000 von 5
    2020-10-01 21:11:09.499     [BBS] updateAcceptance cashmode: 0
    2020-10-01 21:11:09.499     [BBS]     SendD BS_AA_COINACCEPT
    Alles anzeigen

    Ich würde hier gern ein Script schreiben wo ich das Log so ausgelesen bekomm das mir ein Excel, CSV nur die wichtigsten Daten angezeigt werden.

    zb.:

    10000 , 4

    -10000 , 5

    20000 , 4

    Hier mal mein Script:

    C
    #include <Array.au3>
    #include <File.au3>
    #include <String.au3>
    
    Global $sFileName = @ScriptDir & "\Log_test.txt"
    
    Example()
    
    
    Func Example()
        Local $aFileRead
        Local $aFileLine[0][2]
        _FileReadToArray($sFileName, $aFileRead)
        If @error Then Exit MsgBox(16, "Error", "Unable to read: " & $sFileName)
        ReDim $aFileLine [UBound($aFileRead)][2]
        For $i = 0 To UBound($aFileRead)
            $aFileLine[$i][0] = _StringBetween($aFileRead[$i], "addCoin: ", " von")
            If Not @error Then ExitLoop
        Next
    _ArrayDisplay($aFileLine)
    EndFunc
    Alles anzeigen

    Bekomm nur Blödsinn heraus.

    lg

    Speedy

  • Array als variablen Array-Namen deklarieren

    • Speedy86
    • 22. September 2020 um 14:00

    Hi,

    ich verwende es in ein Button array wo schon viel integriert ist.

    Das wäre find ich am einfachsten.

    ich möchte eigentlich nur das eine Array zu einen anderen Arraynamen umbenannt wird wenn es zutritt.

    Liebe Grüße

  • Array als variablen Array-Namen deklarieren

    • Speedy86
    • 22. September 2020 um 13:34

    Hallo,

    Geht das überhaupt das man ein Array als Variablen Array Namen deklarieren kann ?

    hier ein bsp.:

    Code
    #include <Array.au3>
    
    Global $arTest[0][0]
    Global $arDeviceList=[ _
            ["One",        1,3,    "0.100",    10,    "$arList1"], _
            ["Two",        2,4,    "0.500",    11,    "$arList1"], _
            ["Three",    3,5,    "0.600",    12,    "$arList2"], _
            ["Four",    3,5,    "0.600",    12,    "$arList2"], _
            ["Five",    3,5,    "0.600",    12,    "$arList3"], _
            ["Six",        6,7,    "0.150",    13,    "$arList4"] _
        ]
    
    Global $arList1=[ _
            ["1 Test 1","1",1,1,1,1], _
            ["1 Test 2","2",2,2,2,2], _
            ["1 Test 3","3",3,3,3,3], _
            ["1 Test 4","4",4,4,4,4], _
            ["1 Test 5","5",5,5,5,5] _
            ]
    
    Global $arList2=[ _
            ["2 Test 1","1",1,1,1,1], _
            ["2 Test 2","2",2,2,2,2], _
            ["2 Test 3","3",3,3,3,3], _
            ["2 Test 4","4",4,4,4,4], _
            ["2 Test 5","5",5,5,5,5] _
            ]
    
    Global $arList3=[ _
            ["3 Test 1","1",1,1,1,1], _
            ["3 Test 2","2",2,2,2,2], _
            ["3 Test 3","3",3,3,3,3], _
            ["3 Test 4","4",4,4,4,4], _
            ["3 Test 5","5",5,5,5,5] _
            ]
    
    Global $arList4=[ _
            ["3 Test 1","1",1,1,1,1], _
            ["3 Test 2","2",2,2,2,2], _
            ["3 Test 3","3",3,3,3,3], _
            ["3 Test 4","4",4,4,4,4], _
            ["3 Test 5","5",5,5,5,5] _
            ]
    
        If $arDeviceList[0][5] = "$arList1" Then
    
            For $i=0 to UBound($arList1)-1 step 1
                For $j=0 to UBound($arList1,2)-1 step 1
                    $arTest[$i][$j] = $arList1[$i][$j]
                Next
            Next
        Else
            For $i=0 to UBound($arList2)-1 step 1
                For $j=0 to UBound($arList2,2)-1 step 1
                    $arTest[$i][$j] = $arList2[$i][$j]
                Next
            Next
        EndIf
    
    For $i=0 to UBound($arTest)-1 step 1
        ConsoleWrite ($arTest[$i][0])
    Next
    Alles anzeigen

    Da gibt es ja sicher eine Möglichkeit ?

    Liebe Grüße

    Speedy

  • File zu array - mit unterschiedliche daten

    • Speedy86
    • 18. September 2020 um 13:38

    Hallo,

    Das ist auch gut aber mir kommt gerade drauf das ich es anders machen kann.

    zb. ich lass es mit ein Gui eintragen.

    Hier mal meine simples Gui ohne Hintergrund Funktionen.

    Plan ist ich Trage die Daten ein zb.Name: Line 1 Nummer: 105

    Wäre doch besser wenn hier immer das File eingelesen und wieder abgespeichert wird.

    Mit Create erstell ich eine neue Zeile und ich will es auf max 5 Nummer bzw. Spalten begrenzen.

    C
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Eingabehilfe = GUICreate("Eingabehilfe", 381, 588, 192, 124)
    $Input1 = GUICtrlCreateInput("", 16, 32, 193, 21)
    $Input2 = GUICtrlCreateInput("", 224, 32, 41, 21)
    $Name = GUICtrlCreateLabel("Name", 16, 8, 32, 17)
    $Nummer = GUICtrlCreateLabel("Nummer", 224, 8, 43, 17)
    $Create = GUICtrlCreateButton("Create", 16, 64, 75, 24)
    $Delete = GUICtrlCreateButton("Delete", 272, 31, 75, 24)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    
    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                Exit
    
        EndSwitch
    WEnd
    Alles anzeigen

    Ich versuch es mal ob ich so etwas komplexes schon schreiben kann :) bin noch nicht so Fit in der Materie.

    Liebe Grüße

  • File zu array - mit unterschiedliche daten

    • Speedy86
    • 17. September 2020 um 08:49

    Hi

    Danke für die Tipps das mit csv werde ich vermutlich verwenden.

    Es ist auch einfacher in Excel zu bearbeiten falls es wer wünscht.

    lg

  • File zu array - mit unterschiedliche daten

    • Speedy86
    • 16. September 2020 um 13:50

    Hallo ihr Lieben,

    Ich würde gerne ein txt File auslesen und zu ein array erzeugen.

    Hier die Daten aus meinen Text Datei:

    Line 1 ;1 ;0

    Line 2 ;1 ;0 ;2

    Line 3 ;1 ;0 ;3

    Line 5 ;1 ;0 ;4

    Line 6 ;1 ;0 ;5 ;7

    Ich will immer mit ein ";" eine Spalte erzeugen, nur leider wo weniger eingetragen ist kommt dann ein Fehler.

    C
    #include <file.au3>
    #include <array.au3>
    
    Local $aFile = ""
    _FileReadToArray(@ScriptDir & "\test.txt", $aFile)
    Local $a2D[$aFile[0]][5]
    For $i = 1 To $aFile[0]
    $aSplit = StringSplit($aFile[$i], ";",2)
    $a2D[$i-1][0] = $aSplit[1]
    $a2D[$i-1][1] = $aSplit[2]
    $a2D[$i-1][2] = $aSplit[3]
    $a2D[$i-1][3] = $aSplit[4]
    $a2D[$i-1][4] = $aSplit[5]
    Next
    _ArrayDisplay($a2D)
    Alles anzeigen

    Hoff dafür gibt es eine einfache Lösung für dieses Problem ?

    Liebe Grüße

    Speedy

  • Tv Steuerung

    • Speedy86
    • 12. Juni 2020 um 23:43

    Hallo Ihr lieben,

    Ich habe endlich wieder weiter gemacht mit meiner Tv Steuerung.

    Ein komischer Bug hab ich bemerkt wo ich nicht so ganz weiter kommt.

    Wisst Ihr eine Lösung in den Script weiter Oben.

    Wenn ich in der

    Code
    Global $arTvList=[ _
                         ["192.168.55.225",        $i_nec_port,     "TV 1",         100, 100], _
                         ["192.168.55.225",        $i_nec_port,     "TV 7",         700, 100] _
                      ] ;All client IP´s

    weniger als 3 Tv erstelle zb. nur 2 funktioniert das Contextmenü nicht mehr zum aufklappen. komisch das es mit der Linken Mausstate geht.

    Wenn 3 oder mehr sind funktioniert alle ohne Probleme.

    Das hab ich in der zwischen zeit geändert da ich kein:
    Global $iStartOfContextMenuButtons=X

    haben möchte wird ja eh von der Array Liste selbst gezählt.

    Hier noch die änderung dazu:

    Code
    case 1 ; CH Button
       $arTvListControls[$i][$j][1]($hGUI,$nMsg,$arTvListControls[$i][$j+1][0])
    case Else ;all contextmenu items
       telnet_send($arTvList[$i][0],$arTvList[$i][1],$arTvListControls[$i][$j][1],$arTvListControls[$i][$j][2])
       GUICtrlSetData($arTvListControls[$i][1][0],$arContextMenuButtons[$j-UBound($arTvList)][0])
    
       If $arContextMenuButtons[$j-UBound($arTvList)][0]=$sRestart Then
       GUICtrlSetData($arTvListControls[$i][1][0],"")
       EndIf
    
    
    
    Func _refreshTvButtons()
        ;resize control array
        ReDim $arTvListControls[UBound($arTvList)][UBound($arTvList)+UBound($arContextMenuButtons)][3]
        ;create new controls
        For $i=0 to UBound($arTvList)-1 step 1
            $arTvListControls[$i][0][0]=GUICtrlCreateButton($arTvList[$i][2],$arTvList[$i][3],$arTvList[$i][4],$iTvListItemWidth,$iTvListButtonHeight)
            GUICtrlSetFont($arTvListControls[$i][0][0], 8.5, 700, 0, "")
            $arTvListControls[$i][1][0]=GUICtrlCreateButton("",$arTvList[$i][3],$arTvList[$i][4]+$iTvListButtonSpace,$iTvListItemWidth,$iTvListButtonHeight)
            $arTvListControls[$i][1][1]=ShowMenu
            GUICtrlSetFont($arTvListControls[$i][1][0], 8.5, 500, 0, "")
            $arTvListControls[$i][2][0]=GUICtrlCreateContextMenu($arTvListControls[$i][1][0])
            For $j=0 to UBound($arContextMenuButtons)-1 step 1
                $arTvListControls[$i][UBound($arTvList)+$j][0]=GUICtrlCreateMenuItem($arContextMenuButtons[$j][0],$arTvListControls[$i][2][0])
                $arTvListControls[$i][UBound($arTvList)+$j][1]=$arContextMenuButtons[$j][1]
                $arTvListControls[$i][UBound($arTvList)+$j][2]=$arContextMenuButtons[$j][2]
            Next
        Next
    EndFunc
    Alles anzeigen

    Hat hier Irgendwer eine Idee ?

    lg

    Speedy

  • Telnet result auslesen (TCP send)

    • Speedy86
    • 9. März 2020 um 16:32

    Hi Oscar,

    Funktioniert bei dir die Namensauflösung ?

    weil bei mir kann er es nicht auflösen.

    Am Router kann ich aber eindeutig den Hostname erkennen und wurde auch richtig eingetragen im $sServerName.

    Sollte dies bei jedem Gerät funktionieren wo ein Hostname korrekt eingetragen ist ? (in meinen Fall ein TV)

    Wenn ich die IP Manuell eintrage funktioniert alles einwandfrei :) Dafür mal ein großes DANKE.

    lg

    Speedy

  • Tv Steuerung

    • Speedy86
    • 8. März 2020 um 21:14

    Hallo,

    Hoff das ich euch nicht schon am nerv gehe.

    Langsam aber doch gefällt mir die array sache immer mehr, vor allem was man alles damit machen kann.

    Hier noch mal paar fragen. hoff das ich das jetzt schon halbwegs richtig beschrieben habe:

    Code
    #Region Func
    
    Func _refreshTvButtons()
        ;resize control array
        ReDim $arTvListControls[UBound($arTvList)][$iStartOfContextMenuButtons+UBound($arContextMenuButtons)][2]

    Es wird ein 3d Array erstellt mit einmal der arTvList wie viel Elemente als Liste enthalten sind, die zweite ist [$iStartOfContextMenuButtons+UBound ($arContextMenuButtons)] die als Spalten eingefügt werden von der Liste $arContextMenuButtons,und die dritte ist die 2 3d Dimension.

    Nur was ich hier nicht verstehe ist warum ich die Telnet befehle als Spanten anhänge das ist mir zurzeit noch zu hoch.

    Auch versuche ich die $iStartOfContextMenuButtons komplett zu entfernen da ich dies eh nicht benötige.
    Aber das bekomm ich auch nicht hin.

    Zb hab ich versucht ein 2. Telnet command hinzuzufügen was hintereinander ausgeführt werden soll.
    wo kann ich den 2 befehle hinzufügen. Im Array $arContextMenuButtons als nächste spalte nur beim:

    Code
    telnet_send($arTvList[$i][0],$arTvList[$i][1],$arTvListControls[$i][$j][1], ???????????)

    schaff ich es nicht das der 2. Command dem Telnet func mitübergeben wird.

    Wie komm ich darauf das der 2. command vom $arContextMenuButtons [2] abgerufen wird.

    Code
     Switch $j
                            case 0 ; FB Button not used
                            case 1 ; CH Button
                                $arTvListControls[$i][$j][1]($hGUI,$nMsg,$arTvListControls[$i][$j+1][0])
                            case Else ;all contextmenu items
                                telnet_send($arTvList[$i][0],$arTvList[$i][1],$arTvListControls[$i][$j][1])
                                GUICtrlSetData($arTvListControls[$i][1][0],$arContextMenuButtons[$j-$iStartOfContextMenuButtons][0])
                                If $arContextMenuButtons[$j-$iStartOfContextMenuButtons][0]=$sRestart Then
                                    GUICtrlSetData($arTvListControls[$i][1][0],"")
                                EndIf
    
    ;Telnet_send
    Func telnet_send($sIp,$iPort,$sCommand,$sCommand2)
        TCPStartup ()
        $Conection=TCPConnect($sIp,$iPort)
        If @error Then
            MsgBox (0,"Error","Could not establish connection to: "&$sIp&":"&$iPort)
            return;
        EndIf
        TCPSend($Conection,$sCommand&Chr(10))
        If @error Then
            MsgBox(0,"Error","Could not send the command: "&$sCommand&" to "&$sIp&":"&$iPort)
        EndIf
        Sleep(300)
        TCPSend($Conection,$sCommand2&Chr(10))
        If @error Then
            MsgBox(0,"Error","Could not send the command: "&$sCommand2&" to "&$sIp&":"&$iPort)
        EndIf
    EndFunc
    ; End Telnet_send
    Alles anzeigen


    lg

    Speedy

  • Telnet result auslesen (TCP send)

    • Speedy86
    • 8. März 2020 um 20:01

    Hi Oscar,

    Danke auf die Idee bin ich gar nicht gekommen :)

    aber wäre es technisch möglich dies auch über Telnet auszulesen.

    mich würde nur interessieren da ich vielleicht auch andere befehle auslesen möchte.

    lg

    Speedy

  • Tv Steuerung

    • Speedy86
    • 7. März 2020 um 16:44

    Hi,

    Mach gerade mehrere Übungen mit Arrays :) ein kurze zwischen frage hätt ich.

    Beim Stringsplit

    Code
    $string = "abcdef"
    Global $aSplit = StringSplit($string, "") ; leerer Trennzeichenstring führt zu Trennung nach jedem Zeichen
    
     ConsoleWrite($aSplit[0] & @LF)

    Stimmt das wenn ich das array mit

    Local $aTest [5] deklariere ruf ich es mit

    $aTest [0] beginned ab.

    wenn ich zählen lass ist [0] immer die anzall der Elemente. und es beginnt mit [1] (1D array)

    lg

    Speedy

  • Telnet result auslesen (TCP send)

    • Speedy86
    • 6. März 2020 um 13:40

    Hallo,

    Versuche gerade von einem Gerät die Mac Adresse auszulesen und zu verarbeiten.

    wenn ich mich mit putty verbinde und den befehlt get_mac_adress eingebe bekomm ich als Rückmeldung:

    Hwaddr: b9:28:A3:39:BB:13 - Succesfull

    Dei Mac Adresse muss ich das mit mit sha512 encoden und ein weiteren Telnetcommand schicken.

    Leider funktioniert das auslesen nicht :(

    Code
    #include <MsgBoxConstants.au3>
    
    Global $sip = "192.168.0.225"
    Global $iport = "8000"
    Global $scommand_1 = "change_user_to admin XXXX"
    Global $scommand_2 = "get_mac_address"
    
    _telnet_send ()
    
    Func _telnet_send ()
       TCPStartup ()
       $Conection = TCPConnect ($sip, $iport)
       If @error Then MsgBox (0,"Error","IP address not reachable")
    
          TCPSend ( $Conection, $scommand_1 & Chr ( 10 ) )
       If @error Then
          MsgBox (0,"Error","Send comannd= " & $scommand_1 & " failed")
          Exit
       EndIf
    
    
          TCPSend ( $Conection, $scommand_2 & Chr ( 10 ) )
       If @error Then
          MsgBox (0,"Error","Send comannd= " & $scommand_2 & " failed")
          Exit
       EndIf
    
       $recv = TCPRecv($Conection, 2048)
    
       MsgBox( 1, "mac address", "The mac address is: " & $recv)
    
       EndFunc
    Alles anzeigen

    Kann mir wer vieleicht sagen was falsch ist.

    irgend wie find ich im google nur extrem lange scripte das ich es mir nicht wirklich rauslesen kann.


    lg

    Speedy

  • Tv Steuerung

    • Speedy86
    • 27. Februar 2020 um 22:04

    Hallo ihr Lieben,

    Also erst mal danke für deine Erklärung ich hab mal gerstern und heute sehr viele Aha Effekte :) gehabt.

    Das mit den Arrays hab ich jetzt verstanden auch wie ich es abrufe. (zumindest mal 1d und 2d Arrays, bei den 3D denk ich auch das ich in der Theorie verstehe)

    hab auch noch mal ein paar anderen Sachen durchgelesen.

    Hier hab ich noch ein paar Unklarheiten gefunden, was ich noch nicht genau versteht.

    Hier mal der Code vom Func _refreshTvButtons()

    Code
    Global $iStartOfContextMenuButtons=7
    Global $arTvListControls[0][0][2]
    
    Func _refreshTvButtons()
        ;resize control array
        ReDim $arTvListControls[UBound($arTvList)][$iStartOfContextMenuButtons+UBound($arContextMenuButtons)][2]
        ;create new controls
        For $i=0 to UBound($arTvList)-1 step 1
            $arTvListControls[$i][0][0]=GUICtrlCreateButton($arTvList[$i][2],$arTvList[$i][3],$arTvList[$i][4],$iTvListItemWidth,$iTvListButtonHeight)
            GUICtrlSetFont($arTvListControls[$i][0][0], 8.5, 700, 0, "")
            $arTvListControls[$i][1][0]=GUICtrlCreateButton("",$arTvList[$i][3],$arTvList[$i][4]+$iTvListButtonSpace,$iTvListItemWidth,$iTvListButtonHeight)
            $arTvListControls[$i][1][1]=ShowMenu
            GUICtrlSetFont($arTvListControls[$i][1][0], 8.5, 500, 0, "")
            $arTvListControls[$i][2][0]=GUICtrlCreateContextMenu($arTvListControls[$i][1][0])
            For $j=0 to UBound($arContextMenuButtons)-1 step 1
                $arTvListControls[$i][$iStartOfContextMenuButtons+$j][0]=GUICtrlCreateMenuItem($arContextMenuButtons[$j][0],$arTvListControls[$i][2][0])
                $arTvListControls[$i][$iStartOfContextMenuButtons+$j][1]=$arContextMenuButtons[$j][1]
            Next
        Next
    EndFunc
    Alles anzeigen

    Ich versteh schon wie hier es funktioniert aber warum macht man zb hier:

    Code
     ReDim $arTvListControls[UBound($arTvList)][$iStartOfContextMenuButtons+UBound($arContextMenuButtons)][2]

    ReDim und nach den $arTvListControls kein =

    des weiteren Ubound bedeutet ja den wert leeren, so wie ich es verstanden habe.

    was noch komisch ist warum Global $arTvListControls[0][0][2] ganz oben ?

    Würde meine Aussage stimmen:

    Ich man die Array $arTvListControls setzt mit Ubound den wert zurück, und setzt mir die $arTvList und auf alle Button Namen von Array $arContextMenuButtons [2]

    aber für was brauch ich den $iStartOfContextMenuButtons , das kann ich ja vom Array auch auslesen lassen.

    Und warum muss ich das so in diesen klammer setzen. Das ist mit leider auch noch ein kleines Rätzel :)

    Das Letzte wo ich noch bedänken habe ist:

    Code
       For $i=0 to UBound($arTvList)-1 step 1

    ich setzt for $i die zahl 0 dann wieder das Ubound mein Array aber warum -1 step 1 ???? das will auch nicht in meinen Kopf.

    Ich hoff das ich dann noch den richtigen weg finde wie ich das mit den 2 Profilen bewerkstelligen kann :)

    Da hät ich mir was einfallen lassen mit in den Array Global $arTvList an wert 1, 2 oder 3 für die unterschiedlichen profilen und in der Func oder im Gui Case Else ein if abfrage wen 1, 2 oder 3 ist dann nimm die Func

    sollte ja auch gehen.


    Liebe Grüße

    Speedy

  • Tv Steuerung

    • Speedy86
    • 25. Februar 2020 um 08:50

    Hi,

    Hier noch ein anderen versuch der komplett in die hose geht :)

    Code
    ; Script Start - Add your code below here
    ; Enumerieren der Indizes in "sprechende" Variablen für die Zeilen des Arrays
    Global Enum $TV1, $TV2, $TV3, $VW, $PC, $Sky_receiver, $D_Box_receiver
    
    ; Enumerieren der Spaltenindizes
    Global Enum $IP, $Port, $Name, $Y_pos, $X_pos, $Profile
    
    Global $iDefaultPort = 443, $iNecPort = 8080, $iVLCPort = 9001
    ; Dein Array
    Global $aDevices[][] = _
                         [["192.168.0.10",$iDefaultPort, "TV 1", 100, 100, $aDefault_Profile], _
                         ["192.168.0.11",$iDefaultPort, "TV 2", 300, 100, $aVLC_Profile], _
                         ["192.168.0.12",$iDefaultPort, "TV 3", 500, 100, $aDefault_Profile], _
                         ["192.168.0.13",$iNecPort, "VW", 700, 100, $aNEC_Profile], _
                         ["192.168.0.14",$iVLCPort, "PC", 900, 100, $aVLC_Profile], _
                         ["192.168.0.15",$iNecPort, "Sky Receiver", 900, 300, $aSky_Profile_receiver], _
                         ["192.168.0.16",$iDefaultPort, "D-Box", 100, 650, $aD_Box_Profile_receiver]]
    
    ; Zugriff
    ConsoleWrite('IP  (D-Box): ' & $aDevices[$D_Box_receiver][$IP][$Y_pos][$X_pos][$Profile] & @CRLF)
    ConsoleWrite('Port (TV 1): ' & $aDevices[$TV1][$Port][$Profile] & @CRLF)
    
    Global Enum $DCH1, $DCH2, $DCH3, $DCH4, $DCH5, $DCH6, $DCH_Line, $DCH_restart
    Global Enum $Dname, $Dtelnet1, $Dtime1, $Dtelnet2, $Dtime2, $Dtelnet3 ;Time ist die Sende verzögerung.
    Global $aDefault_Profile[][] = _
            [["Test 1","Telnet command 1", "500", "Telnet command 2"], _
            ["Test 2","Telnet command 2"], _
            ["Test 3","Telnet command 3", "500", "Telnet command 2", "1000", , "Telnet command 3"], _
            ["Test 4","Telnet command 4"], _
            ["Test 5","Telnet command 5"], _
            ["Test 6","Telnet command 6"], _
            ["",0], _
            ["Restart","Telnet restart"]]
    
    Global Enum $DCH1, $DCH2, $DCH3, $DCH4, $DCH5, $DCH6, $DCH_Line, $DCH_restart
    Global Enum $Dname, $Dtelnet1, $Dtime1, $Dtelnet2, $Dtime2, $Dtelnet3 ;Time ist die Sende verzögerung.
    Global $aVLC_Profile[][] = _
            [["Test 1","http command 1"], _
            ["Test 2","http command 2"], _
            ["Test 3","http command 3"], _
            ["Test 4","http command 4"], _
            ["Test 5","http command 5"], _
            ["Test 6","http command 6"], _
            ["",0], _
            ["Restart","telnet command restart"]]
    Alles anzeigen

    Dachte das mann die Enum vor jedem array angeben kann :(

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™