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

Beiträge von Slevin

  • Map Deklaration throws error

    • Slevin
    • 26. Mai 2018 um 09:53

    Aloha,

    ich verwende zur Informationsweitergabe an den User die Möglichkeit, das Tray-Icon nach belieben zu setzen. Da die Icons in einem separaten Verzeichnis liegen und beim Compilieren nicht in die Exe mit eingebunden werden, möchte ich beim Start des Scripts die Icons auf Availability prüfen. Ein Map wäre da imo die perfekte Lösung, sowohl was das Checken der Icons als auch das logische Einbinden an den entsprechenden Stellen im Code angeht.

    Gedacht habe ich mir folgendes:

    AutoIt
    Global $iconsDir = @ScriptDir & "\Icons\"
    Global $icon[]
    
    $icon["live"] = $iconsDir & "icon-live.ico"
    $icon["lock"] = $iconsDir & "icon-lock.ico"
    $icon["dot"] = $iconsDir & "icon-dot.ico"
    $icon["blank"] = $iconsDir & "icon-blank.ico"
    $icon["dismount"] = $iconsDir & "icon-dismount.ico"
    
    For i = 1 to 10
       $icon["$i"] = $iconsDir & "icon-" & $i & ".ico"
    Next
    
    For i = 0 To UBound($icon) - 1
       If Not FileExists($icon[$i]) Then Exit
    Next
    Alles anzeigen

    Leider schmeisst mir AutoIt beim Starten folgenden Fehler raus:

    Global $icon[]

    Global $icon[^ ERROR

    Error Variable subscript badly formatted.

    Kann mir jemand sagen, was ich falsch mache?

    Vielen Dank

  • Variablen aus ini einlesen und vorhandene überschreiben

    • Slevin
    • 21. Mai 2018 um 13:04

    Sehr schön, die ersten Schritte erfolgreich absolviert, Danke :)

    Werd das Rad auch nicht neu erfinden, und mich brav an die UDF-Konventionen halten ^^

  • Variablen aus ini einlesen und vorhandene überschreiben

    • Slevin
    • 20. Mai 2018 um 20:43

    Perfekt :)

    Vielen Dank alpines, genau das, wonach ich gesucht hatte. Für den Fall, dass noch jemand auf deine Lösung zurückgreifen möchte, könntest du die Codezeile mit dem assign-Befehl um einen Klammerabschluss erweitern?

    Ich hätte noch zwei praktische Fragen wenns erlaubt ist:

    1. Warum setzen manche Programmierer einen Unterstrich _ an den Anfang ihrer Funktionen?

    2. Kann man lange Codezeilen (zB auch lange Array-Deklarationen) mit nem Zeilenumbruch versehen, also auf mehrere Zeilen verteilen, sodass man alles schön im Blick hat? (Der Compiler macht das eh wieder heil^^). In VBS geht das imo mit nem Unterstrich am Ende der Zeile

  • Variablen aus ini einlesen und vorhandene überschreiben

    • Slevin
    • 20. Mai 2018 um 18:04

    Ich würde gerne wissen, ob es eine einfachere Möglichkeit gibt, Varibalen aus einer ini-Datei einzulesen.

    ZZt sieht das ganze folgendermaßen aus:

    AutoIt
    ;set timer-variables
    Global $TimeTillHiddenPassAuto = 60
    Global $TimeTillHiddenPassManual = 10 
    Global $TimeForHiddenPassInput = 10 
    Global $TimeTillCheckout = 480
    Global $IdleCheckInt = 10
    
    ;if ini exists load timer-variables from ini
    Const $FileSettings = @ScriptDir & "\Settings.ini"
    If FileExists($FileSettings) Then
       If IniRead($FileSettings, "Timers", "TimeTillHiddenPassAuto", "x") <> "x" Then
           $TimeTillHiddenPassAuto = Int(IniRead($FileSettings, "Timers", "TimeTillHiddenPassAuto", "0"))    EndIf
       If IniRead($FileSettings, "Timers", "TimeTillHiddenPassManual", "x") <> "x" Then
          $TimeTillHiddenPassManual = Int(IniRead($FileSettings, "Timers", "TimeTillHiddenPassManual", "0"))
       EndIf
       If IniRead($FileSettings, "Timers", "TimeForHiddenPassInput", "x") <> "x" Then
          $TimeTillHiddenPassInput = Int(IniRead($FileSettings, "Timers", "TimeForHiddenPassInput", "0"))
       EndIf
        If IniRead($FileSettings, "Timers", "TimeTillCheckout", "x") <> "x" Then
          $TimeTillCheckout = Int(IniRead($FileSettings, "Timers", "TimeTillCheckout", "0"))
        EndIf
        If IniRead($FileSettings, "Timers", "IdleCheckInt", "x") <> "x" Then
          $IdleCheckInt = Int(IniRead($FileSettings, "Timers", "IdleCheckInt", "0"))
         EndIf
    EndIf
    Alles anzeigen

    Es exisistieren also im Script bereits Variablen. Ist eine ini-Datei vorhanden, dann sollen die darin befindlichen Variablen jene im Script überschreiben.

    Gibt es eine Möglichkeit, mit einer For-Next Schleife sämtliche Variblen aus der ini-Datei auszulesen und aus den keys Variablen zu machen, bzw zu prüfen, ob die keys bereits als Variablen vorhanden sind und gegebenenfalls die vorhandenen zu überschreiben?

    Vielen Dank schon mal für jede Hilfe

    Slevin

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™