Beiträge von Oscar

    Kennt jemand die Ursache oder einen Ausweg?

    Wie soll da jemand helfen können?

    Wo ist Dein Script?

    Wo ist eine (Beispiel-) Datenbankdatei?

    Welchen File-Converter meinst Du (Link)?

    Was erwartest Du als Ergebnis?

    Frage mich gerade was Sinnvoller ist.
    Nach dem Anzeigen in der Listview (?) alle Werte in Datei(en) speichern oder erst wenn ich z. B. einen der Button 1 bis Button 10 drücke. Sinnvoll wäre zweiteres, weil ich dann nur das abspeichere, was ich brauche, also wenn cih den dementsprechende Button drücke.

    Wenn das keine rhetorische Frage ist, dann solltest Du uns erstmal darüber aufklären, wozu diese Analyse überhaupt gut sein soll.

    Den Sinn dahinter habe ich jedenfalls noch nicht verstanden.

    Also ohne die ganzen "Xer+"-Spalten, sieht das jetzt so aus:

    Wie bzw. wo baue ich nun die anderen ein. Also "2er+", "3er+" "und 4er+".

    Worin besteht denn der Unterschied zwischen "2er" und "2er+" bzw. "3er" und "3er+" usw.?

    Oben hast Du die Scripte identisch geschrieben. Das ergibt doch gar keinen Sinn!?

    Wenn ich Button11 drücke markiert er die Buttons 1-10 rot oder grün.

    Das geht aber viel kürzer (Stichwort Array):

    Für das Ergebnis willst Du ein Listview, oder?

    Mache ich später, habe jetzt nicht genug Zeit.

    Ich weiß nicht, ob ich die Aufgabe richtig verstanden habe, aber auf jeden Fall kann man das mit dem Map-Datentyp ganz gut lösen.

    Hier mal als universelle Funktion:

    okay das mit den UDfs macht Sinn für local

    Nicht nur da!

    In Funktionen sollten (möglichst) keine globalen Variablen verwendet werden. Lieber die Variablen als Parameter übergeben und das Ergebnis mit Return zurückgeben.

    Das lässt sich zwar nicht immer realisieren, aber grundsätzlich versuche ich mich daran zu halten.

    Bei rekursiven Funktionen sind lokale Variablen sowieso wichtig.

    Statische (lokale) Variablen sind oftmals auch sehr hilfreich.

    Warum benutzt Du nicht das SHORTDATEFORMAT? Damit geht das einfacher:

    P.S.: Es wäre schön, wenn Du zukünftig wenigstens ein funktionsfähiges Beispielscript posten würdest. Nicht jeder Helfer ist gewillt, erstmal ein Beispiel zu schreiben.

    was soll falsch sein an:


    Global $sOutput[0] = -1

    Mit "Global" deklarierst Du das Array und da Du 0 (also kein Element) angibst, darfst Du auch keine Wertzuweisung vornehmen (die wäre bei der Deklaration so auch falsch).

    AutoIt erlaubt zwar mittlerweile ein Array mit null Elementen zu deklarieren, aber bevor Du auf ein Element zugreifst, musst Du das Array vergrößern.

    So wäre es ok:

    AutoIt
    Global $sOutput[0]
    ReDim $sOutput[1]
    $sOutput[0] = -1

    Ich würde einen anderen Weg vorschlagen:

    Wobei ich die Funktion sogar noch so wegkürzen würde und die Gleiche Funktionalität hätte:

    Natürlich kann man _Iif auch als Funktion abbilden (war in alten Versionen ja so), aber wozu?

    Der ternäre Operator wird mit Sicherheit schneller sein, weil er in AutoIt eingebaut ist und somit nicht erst vom Interpreter zur Laufzeit ausgeführt werden muss.

    Ist das Gegenstück für IIf nicht einfach eine logische Verknüpfung?

    Nicht, so wie ich Iif verstehe, denn als Ergebnis bekommt man ja nicht TRUE/FALSE, sondern den Wert von A bzw. B.
    Also: $C = Iif($x > 50, $A, $B) ; wenn $x größer als 50, dann wird $A zurückgegeben, ansonsten $B.

    Zumindest war das in alten AutoIt-Versionen mit "_Iif()" so. VBA kenne ich nicht.

    In den neuen AutoIt-Versionen gibt es ja den ternären Operator: $C = $x > 50 ? $A : $B

    In VBA habe ich z.B. auch "IIf", was ganz hilfreich ist, ein Äquivalent dazu scheint es in AutoIt nicht zu geben.

    Such mal nach "ternary". Dass ist genau das, wonach Du suchst.

    Und was meinst Du mit mehrere ENUM? Beispielscript bitte!

    Wenn ich jetzt richtig verstehe, kann ich mit "False" auch sagen, dass nur die angegebenen Ordner eingelesen werden sollen!?

    Ja, das geht auch!

    Dann solltest Du aber die Konstante umbenennen, damit Du das Script später auch noch verstehst.

    Man müsste ja auch zur Laufzeit entfernen und hinzufügen können?

    Besser, man liest sie erst gar nicht ein:

    Der Code stammt aus dem Internet.

    Ein voll funktionsfähiges Beispiel wäre sinnvoller gewesen!

    Aber das Problem liegt mit Sicherheit an "_GUIImageList_Create". Das musst Du mit "5" als dritten Parameter starten (die ersten beiden musst Du dann auch angeben).

    Die "5" besagt: "Use a 32 bit DIB section". 32 Bit ist mit Alphawert (transparenz). 24Bit ist ohne Alpha.