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

  • Rundung auf zwei Nachkommastellen ( StringTrimRight )

    • BugFix
    • 20. Oktober 2017 um 10:13

    Round()

  • StringSplit innhalber einer Funktion, funktioniert nicht

    • BugFix
    • 20. Oktober 2017 um 10:03
    Zitat von Musashi

    ==> The requested action with this object has failed.

    Dasselbe habe ich auch.

    Übrigens erhalte ich nur für 18 Parameter überhaupt einen Wert, 13 bleiben leer.

    Diese Werte werden befüllt:

    "Caption"

    "CurrentLanguage"

    "Description"

    "InstallableLanguages"

    "Manufacturer"

    "Name"

    "PrimaryBIOS"

    "ReleaseDate"

    "SerialNumber"

    "SMBIOSBIOSVersion"

    "SMBIOSMajorVersion"

    "SMBIOSMinorVersion"

    "SMBIOSPresent"

    "SoftwareElementID"

    "SoftwareElementState"

    "Status"

    "TargetOperatingSystem"

    "Version"

  • StringSplit innhalber einer Funktion, funktioniert nicht

    • BugFix
    • 19. Oktober 2017 um 17:38
    Zitat von alpines

    ich glaube du hast was auf den Augen. Am besten du lädst die Seite nochmal

    Ich kann alle Änderungen nachverfolgen :P. Und in: Version vom 19. Oktober 2017, 17:18 (alpines) war dem noch so.

  • StringSplit innhalber einer Funktion, funktioniert nicht

    • BugFix
    • 19. Oktober 2017 um 17:21

    alpines: Jetzt hast du ja auch die Globals in der Func belassen. :Face:

  • Problem Datenbank und JSON

    • BugFix
    • 19. Oktober 2017 um 00:01
    Zitat von AspirinJunkie

    Wenn man allerdings - wie ich - von einem allgemeinen regelkonformen JSON-String ausgeht dann muss man auch daran denken dass Anführungszeichen escaped werden können

    Stimmt, das hatte ich gar nicht bedacht. Da hatte ich zu sehr auf den Bsp-String geschaut.

  • Problem Datenbank und JSON

    • BugFix
    • 18. Oktober 2017 um 10:01

    Bei Regex führen viele Wege zum Ziel. Ich arbeite gern mit Negation, weil das das Pattern meist deutlich kürzt (und somit lesbarer macht).

    $s_Type = StringRegExp($sReceived,'"id"\s*:\s*"([^"]+)', 1)[0]


    EDIT:

    Die Fragestellung hat ja nur am Rande mit der UDF zu tun und gehört m.M. nach in H&U.

    Ich trenne daher den Bereich ab und verschiebe dorthin.

  • OpenVPN Problem

    • BugFix
    • 17. Oktober 2017 um 14:31

    Da wir hier keine Bibliothek mit allen Fensterklassen/Controlnamen etc. aller existierenden Installationsprogramme rumliegen haben, wäre es mehr als hilfreich, wenn du zum Einen die Angaben zu allen Fenster-/Controlnamen bekannt gibst und zum Anderen dein bisheriges Skript zeigst.

  • merkwürdiges Verhalten bei DirMove

    • BugFix
    • 12. Oktober 2017 um 16:16

    Interessant und krass. Ist mir in all meinen AutoIt-Jahren nie aufgefallen. Allerdings wohl auch deshalb, weil ich im Normalfall kopiere und erst bei Erfolg die Quelle lösche.

  • GuiCtrlBusy - wie ToolTip, nur anders ;-) - Final [v1.0]

    • BugFix
    • 3. Oktober 2017 um 10:52
    Zitat von Bitnugger

    wenn man die Textausrichtung ($iAlign = 0|1|2 - left|right|centered) mit angeben könnte.

    Das ist machbar, werde ich aber nicht als Parameter für die Erstellung integrieren, sondern dann als Zusatzfunktion _SetAlign().

    Zitat von Bitnugger

    wenn man links neben dem Text noch ein Icon platzieren könnte.

    Grundsätzlich ist alles machbar, was man mit einem Fenster machen kann. Jedoch würde ich mir das dann für später aufheben, weil ich dann die Größenkalkulation verändern muss. Wobei ich das Icon nicht neben den Text, sondern top links neben dem Titel platzieren würde.

    Zitat von Oscar

    Dafür benötigt man eigentlich keine zusätzlichen Funktionen.

    Stimmt natürlich, ich hätte die Events auch nur gecastet - aber das wäre overdressed. ;)

    Ich mache jetzt erst mal die fehlerbereinigte Version fertig, in der auch alle Parameteränderungen zur Laufzeit funktionieren (momentan noch nicht kpl.). Dann werde ich mich den Wünschen widmen.

  • 'Ersatz'-Signatur

    • BugFix
    • 29. September 2017 um 23:56

    Die Links sind im gesamten Forum tot. Das hängt mit dem Umzug auf das neue Board zusammen. Ist aber in Arbeit, soweit ich weiß.

    Also noch etwas Geduld.

  • GuiCtrlBusy - wie ToolTip, nur anders ;-) - Final [v1.0]

    • BugFix
    • 29. September 2017 um 13:58

    Prima, da die Stolpersteine nun identifiziert sind, kann ich mich ans Feintuning machen. Ein paar Kleinigkeiten sind noch zu erledigen und dann gibt es die finale Version.

  • GuiCtrlBusy - wie ToolTip, nur anders ;-) - Final [v1.0]

    • BugFix
    • 29. September 2017 um 09:19

    Tuxedo Das kann ich nicht reproduzieren. Das Verhalten ist bei mir identisch, egal ob kompiliert oder als Run in SciTE. Ich verwende die SciTE Version 3.4.4 und AutoIt Stable 3.3.14.2

    Bei mir läuft Win 7 Pro x64.

    So wie du es beschreibst, verursacht _Timer_KillTimer() diesen Crash.

    Ich habe mal in den Tickets gesucht und #3513 dazu gefunden, geht hier um _Timer_KillAllTimers(), sollte aber vergleichbar sein.

    Kernaussage:

    - Wenn _Timer_KillAllTimers() mit AutoIt 64bit in SciTE4AutoIt genutzt wird, kommt es zum Crash

    - Mit AutoIt 32bit in SciTE4AutoIt tritt der Fehler nicht auf

    - Ebenso nicht mit der Lite-Version von SciTE

    - Mit der AutoItversion (3.3.12.0) war dieses Verhalten auch nicht vorhanden

    Aber wenn ich deine Fehlermeldung betrachte, wird nicht die 64bit Version von AutoIt gestartet. Insofern ist das dann wohl nicht in der Form relevant. Wobei ich aber als "Übeltäter" eindeutig _Timer_KillTimer() sehe. Vom Ablauf her ist das die einzige Möglichkeit zum Crash.

  • GuiCtrlBusy - wie ToolTip, nur anders ;-) - Final [v1.0]

    • BugFix
    • 28. September 2017 um 18:28

    Zeitriss :thumbup:

    Danke dir. Wie es aussieht, war es das. Mal noch im Langzeittest stehen lassen, aber zumindest ist jetzt der Arbeitsspeicher konstant.

  • GuiCtrlBusy - wie ToolTip, nur anders ;-) - Final [v1.0]

    • BugFix
    • 28. September 2017 um 16:17

    Ich baue das jetzt mal um, muss dazu aber den Ablauf ändern. Dann können wir neu testen.

    Könnte aber etwas dauern, bis ich fertig bin.

  • GuiCtrlBusy - wie ToolTip, nur anders ;-) - Final [v1.0]

    • BugFix
    • 28. September 2017 um 15:16

    OK, Danke erst mal fürs Probieren.

    Ich habe eine Vermutung:

    Beim Erstellen der Control verhindere ich das Kollidieren der Callbackaufrufe durch ein kleines Sleep. Aber irgendwann wird wohl in Summierung der Differenzzeiten eine Kollision unausweichlich und während eine Callbackprozedur gerade abgearbeitet wird, grätscht schon der nächste Aufruf rein. Nun muss ich mal sehen, wie da am besten eine "Warteschlange" hinbekomme.

  • GuiCtrlBusy - wie ToolTip, nur anders ;-) - Final [v1.0]

    • BugFix
    • 28. September 2017 um 09:04
    Zitat von Tuxedo

    Den Sample-Code verstehe fast vollständig, vom UDF-Code selbst verstehe ich leider nur etwa die Hälfte.

    Beim UDF-Code ist eigentlich der Kernpunkte die _Create-Funktion. Hier werden die Fenster erstellt, ihre Parameter in Arrays gespeichert, die Arrays der zentralen Verwaltung zugeführt.

    Die Timergesteuerte Callback-Funktion prüft halt nur ob - und wenn ja - was neu gezeichnet werden soll und initiiert das dann.

    Alle anderen Funktionen dienen der Parameterverwaltung /-änderung.

    Zitat von Tuxedo

    eventuell nach einem Memory-Überlauf oder eine Art Speicherschutzverletzung.

    Das klingt recht wahrscheinlich.

    Und manchmal muss man Dinge einfach mal aufschreiben um nochmal besser drüber nachdenken zu können. Ich habe mir aufgrund deiner Vermutung nochmals die Callback-Funktion angeschaut: Wie es aussieht habe ich vergessen beim Freigeben der Ressourcen einen DC zu löschen.

    In Zeile #653 (Gradienterstellung) hole ich mir den DC Local $hDC = _WinAPI_GetDC($hWnd), gebe ihn aber nicht wieder frei.

    Das sollte sich beheben lassen, mit einem _WinAPI_DeleteDC($hDC), einzufügen in Zeile #718.

    Vielleicht kannst du mal ausgiebig testen, ob es jetzt rund läuft.

    Ich hatte noch als Idee, die Funktionen _GuiCtrlBusy_RegisterSingleClick($hWnd, "function") und _GuiCtrlBusy_RegisterDoubleClick($hWnd, "function") zu erstellen, die dann entsprechend Klick/Doppelklick auf das Control auswerten. Wäre das interessant/nützlich/sinnvoll?

  • Datum im Dateinamen ändern - Ordnung im Chaos

    • BugFix
    • 26. September 2017 um 19:01

    Hier mal als Muster für die Dateinamen, die mit dem Datum beginnen (0516... / 2.17...)

    AutoIt
    ; Verwende Dateinamen ohne Endung zum Umbau
    ; Bsp. 2.17 Dateiname.txt
    $sFileName = '2.17 Dateiname'
    $sExt = '.txt'
    
    ; mach es einfach in mehreren Schritten, ist verständlicher, als ein allumfassendes Pattern zu basteln
    $aMatch = StringRegExp($sFileName, '^(\d{1,2})\.*(\d+)\s*(.+)$', 3)
    ; $aMatch[0] = 2
    ; $aMatch[1] = 17
    ; $aMatch[2] = Dateiname
    $sResult = $aMatch[2] & ' ' & String( 2000 + Number($aMatch[1]) ) & '-' & StringFormat('%02d', $aMatch[0]) & $sExt
    ConsoleWrite("@@ Debug line" & @TAB & @ScriptLineNumber & "   var: $sResult --> " & $sResult & @LF)
    Alles anzeigen
  • [Problem] Item Reader - Daten aus 3 Dateien lesen & zuordnen

    • BugFix
    • 26. September 2017 um 14:01

    Mit den Doppeln hatte ich mich vertan, sind nur diese:

    Code
    DOPPEL: IDS_PROPITEM_TXT_007239 - II_ARM_F_CHR_SWIM01UPPER       IDS_PROPITEM_TXT_007239 - Swimwear(F)
    DOPPEL: IDS_PROPITEM_TXT_007243 - II_ARM_F_CHR_SWIM01FOOT        IDS_PROPITEM_TXT_007243 - Slipper(F)
  • [Problem] Item Reader - Daten aus 3 Dateien lesen & zuordnen

    • BugFix
    • 26. September 2017 um 13:15

    So, hier mein abschliessender Beitrag.

    ich habe jetzt, wie in Post #22 beschrieben, die Prüfungen vorgenommen. Dadurch sind mir auch die Dopplungen aufgefallen.

    Diese Version funktioniert jetzt, die Doppel sind aber nicht enthalten:

    AutoIt
    #include <GUIListView.au3>
    Opt('GUIOnEventMode', 1)
    
    Global $SF = StringFormat
    Global $sPathItem = $SF('%s\defineItem.h', @ScriptDir)
    Global $sPathPropItem = $SF('%s\propItem.txt', @ScriptDir)
    Global $sPathPropItemTxt = $SF('%s\propItem.txt.txt', @ScriptDir)
    Global $sPathResult = $SF('%s\\result.txt', @ScriptDir)
    
    
    Global $timer = TimerInit()
    
    Global $aItem = StringRegExp(FileRead($sPathItem), '(?<=\r\n)#define\s+([\S\T]+)\s+(\d+)', 3)
    ; Index 0 (+2/4/6...) = Key     II_WEA_AXE_RODNEY
    ; Index 1 (+2/4/6...) = Value   81
    Global $oItem = ObjCreate('Scripting.Dictionary')
    For $i = 0 To UBound($aItem) -2 Step 2
        $oItem.Add($aItem[$i], $aItem[$i+1]) ; ItemDefine = ID
    Next
    
    
    Global $aPropItem = StringRegExp(FileRead($sPathPropItem), '(?<=\r\n)\d+\t+([\w_\d]+)\t+([\S]+)\s+', 3)
    ; Index 1 (+2/4/6...) = Key       IDS_PROPITEM_TXT_000124
    ; Index 0 (+2/4/6...) = Value     II_WEA_AXE_RODNEY
    Global $oProp = ObjCreate('Scripting.Dictionary')
    For $i = 0 To UBound($aPropItem) -2 Step 2
        If Not $oProp.Exists($aPropItem[$i+1]) Then
            $oProp.Add($aPropItem[$i+1], $aPropItem[$i]) ; Text-Identifier = ItemDefine
        EndIf
    Next
    
    
    ; GUI
    $hGUI=GUICreate("Item-Lister", 900, 800)
    $hList = GUICtrlCreateListView("Item Code|DEFINE|Item Name|Item Text", 20, 20, 860, 650)
    _GUICtrlListView_SetColumn($hList, 0, 'ITEM-ID', 60, 0) ; 2. Spalte = 470 Px breit, rechts ausgerichtet
    _GUICtrlListView_SetColumn($hList, 1, 'Itenname', 240, 0) ; 2. Spalte = 470 Px breit, rechts ausgerichtet
    _GUICtrlListView_SetColumn($hList, 2, 'Itenbeschreibung', 356, 0) ; 2. Spalte = 470 Px breit, rechts ausgerichtet
    _GUICtrlListView_SetColumn($hList, 3, 'Define', 180, 0) ; 1. Spalte = 40 Px breit, links ausgerichtet
    GUISetOnEvent(-3, "_close")
    
    Global $aItemTxt = StringRegExp(FileRead($sPathPropItemTxt), '(IDS_(?:PROPITEM|UNBIND)\w+\d+)([^\r]+)', 3)
    ; Index 0 (+2/4/6...) = Key     IDS_PROPITEM_TXT_000124   ODER: Beschreibung-Identifier
    ; Index 1 (+2/4/6...) = Value   Rodney Axe                ODER: Beschreibung-Text
    
    Global $sResult = ''
    Global $sLVItem = '', $iID, $sIdent, $sTxt, $sDescript
    For $i = 0 To UBound($aItemTxt) -2 Step 2
        $sDescript = ''
        If $oProp.Exists($aItemTxt[$i]) Then  ; Eintrag ist Text-Identifier
            $sIdent = $oProp.Item($aItemTxt[$i])                       ; Item Define
            $iID = Number($oItem.Item($sIdent))                        ; ID
            $sTxt = StringStripWS($aItemTxt[$i+1], 1+2)                ; Name
            ; Folgeeintrag kein Text-Identifier -->                      Beschreibung
            If ($i < UBound($aItemTxt) -2) And (Not $oProp.Exists($aItemTxt[$i+2])) Then
                $sDescript = StringStripWS($aItemTxt[$i+3], 1+2)
            EndIf
            ; ID | Name | Beschreibung | ItemDefine
            ; 81 | Rodney Axe | | II_WEA_AXE_RODNEY
            $sLVItem = $SF('%s|%s|%s|%s', $iID, $sTxt, $sDescript, $sIdent)
            $sResult &= $SF('%s%s', $sLVItem, @CRLF)
            GUICtrlCreateListViewItem($sLVItem, $hList)
        EndIf
    Next
    ConsoleWrite($SF('Time used: %0.1f s', TimerDiff($timer)/1000) & @CRLF)
    
    ; Schreiben in Datei
    Global $fH = FileOpen($sPathResult, 2+8)
    FileWrite($fH, $sResult)
    FileClose($fH)
    
    
    
    GUISetState()
    
    While True
        Sleep(50)
    WEnd
    
    Func _close()
        Exit
    EndFunc
    Alles anzeigen
  • [Problem] Item Reader - Daten aus 3 Dateien lesen & zuordnen

    • BugFix
    • 26. September 2017 um 12:51

    Mal zu deiner Info:

    Die Datei propItem.txt enthält etliche Doppel, d.h. die folgenden Schlüssel IDS_PROPITEM_TXT_... werden mehrfach verwendet:

    Spoiler anzeigen

    DOPPEL: IDS_PROPITEM_TXT_002080 - II_ARM_M_BLA_SUIT05

    DOPPEL: IDS_PROPITEM_TXT_001536 - II_ARM_M_BLA_HELMET05

    DOPPEL: IDS_PROPITEM_TXT_002624 - II_ARM_M_BLA_GAUNTLET05

    DOPPEL: IDS_PROPITEM_TXT_003168 - II_ARM_M_BLA_BOOTS05

    DOPPEL: IDS_PROPITEM_TXT_002148 - II_ARM_F_BLA_SUIT05

    DOPPEL: IDS_PROPITEM_TXT_001604 - II_ARM_F_BLA_HELMET05

    DOPPEL: IDS_PROPITEM_TXT_002692 - II_ARM_F_BLA_GAUNTLET05

    DOPPEL: IDS_PROPITEM_TXT_003236 - II_ARM_F_BLA_BOOTS05

    DOPPEL: IDS_PROPITEM_TXT_002488 - II_ARM_M_ELE_SUIT05

    DOPPEL: IDS_PROPITEM_TXT_001944 - II_ARM_M_ELE_HELMET05

    DOPPEL: IDS_PROPITEM_TXT_003032 - II_ARM_M_ELE_GAUNTLET05

    DOPPEL: IDS_PROPITEM_TXT_003576 - II_ARM_M_ELE_BOOTS05

    DOPPEL: IDS_PROPITEM_TXT_002556 - II_ARM_F_ELE_SUIT05

    DOPPEL: IDS_PROPITEM_TXT_002012 - II_ARM_F_ELE_HELMET05

    DOPPEL: IDS_PROPITEM_TXT_003100 - II_ARM_F_ELE_GAUNTLET05

    DOPPEL: IDS_PROPITEM_TXT_003644 - II_ARM_F_ELE_BOOTS05

    DOPPEL: IDS_PROPITEM_TXT_002468 - II_ARM_M_PSY_SUIT05

    DOPPEL: IDS_PROPITEM_TXT_001924 - II_ARM_M_PSY_HELMET05

    DOPPEL: IDS_PROPITEM_TXT_003012 - II_ARM_M_PSY_GAUNTLET05

    DOPPEL: IDS_PROPITEM_TXT_003556 - II_ARM_M_PSY_BOOTS05

    DOPPEL: IDS_PROPITEM_TXT_002536 - II_ARM_F_PSY_SUIT05

    DOPPEL: IDS_PROPITEM_TXT_001992 - II_ARM_F_PSY_HELMET05

    DOPPEL: IDS_PROPITEM_TXT_003080 - II_ARM_F_PSY_GAUNTLET05

    DOPPEL: IDS_PROPITEM_TXT_003624 - II_ARM_F_PSY_BOOTS05

    DOPPEL: IDS_PROPITEM_TXT_002060 - II_ARM_M_KIN_SUIT05

    DOPPEL: IDS_PROPITEM_TXT_001516 - II_ARM_M_KIN_HELMET05

    DOPPEL: IDS_PROPITEM_TXT_002604 - II_ARM_M_KIN_GAUNTLET05

    DOPPEL: IDS_PROPITEM_TXT_003148 - II_ARM_M_KIN_BOOTS05

    DOPPEL: IDS_PROPITEM_TXT_002128 - II_ARM_F_KIN_SUIT05

    DOPPEL: IDS_PROPITEM_TXT_001584 - II_ARM_F_KIN_HELMET05

    DOPPEL: IDS_PROPITEM_TXT_002672 - II_ARM_F_KIN_GAUNTLET05

    DOPPEL: IDS_PROPITEM_TXT_003216 - II_ARM_F_KIN_BOOTS05

    DOPPEL: IDS_PROPITEM_TXT_012950 - II_GEN_GEM_GEM_CHAINSAWKR

    DOPPEL: IDS_PROPITEM_TXT_013428 - II_GEN_FOO_CHRISTMASGMCAKE01

    DOPPEL: IDS_PROPITEM_TXT_006994 - II_ARM_S_CLO_MAS_ANGEL01

    DOPPEL: IDS_PROPITEM_TXT_006992 - II_ARM_S_CLO_MAS_DEVIL01

    DOPPEL: IDS_PROPITEM_TXT_004990 - II_ARM_S_CLO_HAT_MUSHROOM01

    DOPPEL: IDS_PROPITEM_TXT_004988 - II_ARM_S_CLO_HAT_STATHAT01

    DOPPEL: IDS_PROPITEM_TXT_001672 - II_ARM_M_RAG_HELMET05

    DOPPEL: IDS_PROPITEM_TXT_002216 - II_ARM_M_RAG_SUIT05

    DOPPEL: IDS_PROPITEM_TXT_002760 - II_ARM_M_RAG_GAUNTLET05

    DOPPEL: IDS_PROPITEM_TXT_003304 - II_ARM_M_RAG_BOOTS05

    DOPPEL: IDS_PROPITEM_TXT_001740 - II_ARM_F_RAG_HELMET05

    DOPPEL: IDS_PROPITEM_TXT_002284 - II_ARM_F_RAG_SUIT05

    DOPPEL: IDS_PROPITEM_TXT_002828 - II_ARM_F_RAG_GAUNTLET05

    DOPPEL: IDS_PROPITEM_TXT_003372 - II_ARM_F_RAG_BOOTS05

    DOPPEL: IDS_PROPITEM_TXT_003420 - II_ARM_M_RIN_BOOTS05

    DOPPEL: IDS_PROPITEM_TXT_001788 - II_ARM_M_RIN_HELMET05

    DOPPEL: IDS_PROPITEM_TXT_002332 - II_ARM_M_RIN_SUIT05

    DOPPEL: IDS_PROPITEM_TXT_002876 - II_ARM_M_RIN_GAUNTLET05

    DOPPEL: IDS_PROPITEM_TXT_003488 - II_ARM_F_RIN_BOOTS05

    DOPPEL: IDS_PROPITEM_TXT_001856 - II_ARM_F_RIN_HELMET05

    DOPPEL: IDS_PROPITEM_TXT_002400 - II_ARM_F_RIN_SUIT05

    DOPPEL: IDS_PROPITEM_TXT_002944 - II_ARM_F_RIN_GAUNTLET05

    DOPPEL: IDS_PROPITEM_TXT_008848 - II_SYS_SYS_SCR_EVEAMPESS

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™