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

  • Sehr große Zahlen addieren führt zum falschen Ergebnis

    • BugFix
    • 3. November 2023 um 06:29
    Zitat von Tyzer

    gibts hier irgendwelche Umwege?

    Such mal im Forum nach der BigNum UDF.

  • @SW_HIDE

    • BugFix
    • 2. November 2023 um 22:35
    Zitat von Peter S. Taler

    Vielleicht schaust Du mal da...

    Na dann bietet es sich doch an, wenn man Zitate verwendet auch sofort die Quelle zu benennen - oder sehe ich das falsch? :/

  • Ich brauche einen Strich...

    • BugFix
    • 27. Oktober 2023 um 18:16
    Zitat von Peter S. Taler

    Natürlich könnte ich diese "einfach" als Menüpunkt einbauen, aber dann sind diese ja "auswählbar".

    Würde ich trotzdem so machen - dann prüfst du bei der Auswahl, ob ein Trenner gewählt wurde und tust einfach nichts.

  • MySQL - externe Datenbankabfrage

    • BugFix
    • 27. Oktober 2023 um 15:16
    Zitat von Schleifchen

    d.h. es ist kein MySQL-ODBC Treiber installiert.

    Dann arbeite ohne ODBC-Treiber.

    Hier die UDF von prog@ndy:

    GitHub - BugFix/AutoIt_MySQL: The MySQL UDF created by prog@ndy
    The MySQL UDF created by prog@ndy. Contribute to BugFix/AutoIt_MySQL development by creating an account on GitHub.
    github.com
  • SciTE - einfach zu Dark Theme switchen (+ Lua Dark Theme)

    • BugFix
    • 27. Oktober 2023 um 12:33

    Im Startpost hinzugefügt:

    Dark-Theme für Lua-Skripte.

  • MySQL - externe Datenbankabfrage

    • BugFix
    • 27. Oktober 2023 um 11:50

    Schleifchen

    Wirf mal einen Blick in unser Unterforum Datenbanken. z.B. dieser Beitrag könnte für dich zutreffen.

  • SciTE-AddOn: OwnHotKeys (inkl. Installer) EDIT: neu "DebugAU3.lua"

    • BugFix
    • 23. Oktober 2023 um 22:30

    OHK werde ich bei Gelegenheit auch noch aktualisieren.

    Jetzt erst mal eine andere Version für "DebugToConsole", NEU: "DebugAU3.lua"

    Mich hat schon immer gestört, dass komplexe Arrayvariablen oder Variablen in Punktnotation nicht mit einem einfachen Hotkey als Debugzeile eingefügt werden können.

    Meine jetzige Lösung erkennt (so weit ich bisher sehen konnte) alle syntaktisch erlaubten Variablenschreibweisen. Arrayausdrücke in beliebiger Dimension, ineinander geschachtelt und/oder mit Funktionen als Index etc.

    Im Text der Debugzeile vor dem Variablenwert werden Schleifenvariablen von Arrays einzeln aufgelöst, somit kann ein falscher Wert gleich dem entsprechenden Index zugeordnet werden. Sollte allerdings eine Variable mit einem Klammerausdruck beginnen, wird der gesamte innere Ausdruck aufgelöst, selbst wenn dort nochmals Array-Indizes enthalten sein sollten.

    Bsp, (durchaus fiktiv und auch crazy)
    AutoIt
    ; $varXYZ
      ConsoleWrite('@@_Debug_line' & @TAB & @TAB & @ScriptLineNumber & ' var: ' & '$varXYZ' & ' --> ' & $varXYZ & @CRLF)
    ; $var[$i]
      ConsoleWrite('@@_Debug_line' & @TAB & @TAB & @ScriptLineNumber & ' var: ' & '$var[' & $i & ']' & ' --> ' & $var[$i] & @CRLF)
    ; $var[$i][$j]
      ConsoleWrite('@@_Debug_line' & @TAB & @TAB & @ScriptLineNumber & ' var: ' & '$var[' & $i & '][' & $j & ']' & ' --> ' & $var[$i][$j] & @CRLF)
    ; $ar[0][1]
      ConsoleWrite('@@_Debug_line' & @TAB & @TAB & @ScriptLineNumber & ' var: ' & '$ar[' & 0 & '][' & 1 & ']' & ' --> ' & $ar[0][1] & @CRLF)
    ; ($var[$i][$j])[$f][$g][$h]
      ConsoleWrite('@@_Debug_line' & @TAB & @TAB & @ScriptLineNumber & ' var: ' & '(' & $var[$i][$j] & ')[' & $f & '][' & $g & '][' & $h & ']' & ' --> ' & ($var[$i][$j])[$f][$g][$h] & @CRLF)
    ; ($var[$i][$j]).mu.ma
      ConsoleWrite('@@_Debug_line' & @TAB & @TAB & @ScriptLineNumber & ' var: ' & '(' & $var[$i][$j] & ').mu.ma' & ' --> ' & ($var[$i][$j]).mu.ma & @CRLF)
    ; ($var[$i][$j][$k][($l-15)^2][6*3]).mama.mia
      ConsoleWrite('@@_Debug_line' & @TAB & @TAB & @ScriptLineNumber & ' var: ' & '(' & $var[$i][$j][$k][($l-15)^2][6*3] & ').mama.mia' & ' --> ' & ($var[$i][$j][$k][($l-15)^2][6*3]).mama.mia & @CRLF)
    ; $ar[_getIndex1($i)][_getIndex2($j)]
      ConsoleWrite('@@_Debug_line' & @TAB & @TAB & @ScriptLineNumber & ' var: ' & '$ar[' & _getIndex1($i) & '][' & _getIndex2($j) & ']' & ' --> ' & $ar[_getIndex1($i)][_getIndex2($j)] & @CRLF)
    ; $tRectDraw.Bottom
      ConsoleWrite('@@_Debug_line' & @TAB & @TAB & @ScriptLineNumber & ' var: ' & '$tRectDraw.Bottom' & ' --> ' & $tRectDraw.Bottom & @CRLF)
    ; $gm["Index"]
      ConsoleWrite('@@_Debug_line' & @TAB & @TAB & @ScriptLineNumber & ' var: ' & '$gm[' & "Index" & ']' & ' --> ' & $gm["Index"] & @CRLF)
    Alles anzeigen

    Wie einbinden?

    - "DebugAU3.lua" abspeichern

    - Aufrufe über Hotkeys in der "SciTEUser.properties" definieren

    - Für unterschiedliche Aufrufvarianten die props in der command-Zeile ( hier: command.38.$(au3) ) anpassen

    Bsp.

    .properties
    command.name.38.$(au3)=DebugAU3 + Err + Ext
    command.mode.38.$(au3)=subsystem:lua,savebefore:no
    command.38.$(au3)=dostring do props['debug.err.au3'] = 'err_ext' props['debug.err.au3.raw'] = '0' dofile(props["Lua.User.Scripts.Path"]..'/DebugAU3.lua') end
    command.shortcut.38.$(au3)=Alt+KeypadMinus
    
    
    # props["Lua.User.Scripts.Path"] --> ist meine private Pfad Property für Lua Skripte
    # Ersetzt das mit eurem Speicherpfad, z.B.: "C:\\users\\MICKYMOUSE\\scripts\\DebugAU3.lua"
    
    
    # Debug type: props['debug.err.au3'] = '' (var only), or ('err' var+err, 'ext' var+ext, 'err_ext' var+err+ext)
    # Debug text mode: props['debug.err.au3.raw'] = '0' or ('1' = 'raw')
    Alles anzeigen

    Eine kpl. Beschreibung findet ihr im Skriptkopf.

    DebugAU3.lua
    Lua
    --[[ Debug current au3-variable, by @BugFix
    
    
    • Recognizes all syntactically allowed forms of variables in au3 scripts (also nested and with functions inside)
    • Resolve internal references in the description text for most syntax variants
    • Non-resolvable syntax variants can be output as "raw" via call parameter
    • Output: Variable only, Variable + Error, Variable + Error + Extended, Variable + Extended
    • Any output type can be combined with the "raw" parameter
    • All settings are made in the shortcut definition in "SciTEUser.properties".
    example:
      command.name.38.$(au3)=DebugAU3 + Err + Ext
      command.mode.38.$(au3)=subsystem:lua,savebefore:no
      command.38.$(au3)=dostring do props['debug.err.au3'] = 'err_ext' props['debug.err.au3.raw'] = '0'  dofile(props["Lua.User.Scripts.Path"]..'/DebugAU3.lua') end
      command.shortcut.38.$(au3)=Alt+KeypadMinus
    
    
      props["Lua.User.Scripts.Path"] --> this is my private path property for lua scripts
      replace this with your storage path, i.e. "C:\\users\\MICKYMOUSE\\scripts\\DebugAU3.lua"
    
    
      Debug type: props['debug.err.au3'] = '' (var only), or ('err' var+err, 'ext' var+ext, 'err_ext' var+err+ext)
      Debug text mode: props['debug.err.au3.raw'] = '0' or ('1' = 'raw')
    ]]
    
    
    --[[ Samples, partly very specific ;=p
    • $varXYZ
      ConsoleWrite('@@_Debug_line' & @TAB & @TAB & @ScriptLineNumber & ' var: ' & '$varXYZ' & ' --> ' & $varXYZ & @CRLF)
    • $var[$i]
      ConsoleWrite('@@_Debug_line' & @TAB & @TAB & @ScriptLineNumber & ' var: ' & '$var[' & $i & ']' & ' --> ' & $var[$i] & @CRLF)
    • $var[$i][$j]
      ConsoleWrite('@@_Debug_line' & @TAB & @TAB & @ScriptLineNumber & ' var: ' & '$var[' & $i & '][' & $j & ']' & ' --> ' & $var[$i][$j] & @CRLF)
    • $ar[0][1]
      ConsoleWrite('@@_Debug_line' & @TAB & @TAB & @ScriptLineNumber & ' var: ' & '$ar[' & 0 & '][' & 1 & ']' & ' --> ' & $ar[0][1] & @CRLF)
    • ($var[$i][$j])[$f][$g][$h]
      ConsoleWrite('@@_Debug_line' & @TAB & @TAB & @ScriptLineNumber & ' var: ' & '(' & $var[$i][$j] & ')[' & $f & '][' & $g & '][' & $h & ']' & ' --> ' & ($var[$i][$j])[$f][$g][$h] & @CRLF)
    • ($var[$i][$j]).mu.ma
      ConsoleWrite('@@_Debug_line' & @TAB & @TAB & @ScriptLineNumber & ' var: ' & '(' & $var[$i][$j] & ').mu.ma' & ' --> ' & ($var[$i][$j]).mu.ma & @CRLF)
    • ($var[$i][$j][$k][($l-15)^2][6*3]).mama.mia
      ConsoleWrite('@@_Debug_line' & @TAB & @TAB & @ScriptLineNumber & ' var: ' & '(' & $var[$i][$j][$k][($l-15)^2][6*3] & ').mama.mia' & ' --> ' & ($var[$i][$j][$k][($l-15)^2][6*3]).mama.mia & @CRLF)
    • $ar[_getIndex1($i)][_getIndex2($j)]
      ConsoleWrite('@@_Debug_line' & @TAB & @TAB & @ScriptLineNumber & ' var: ' & '$ar[' & _getIndex1($i) & '][' & _getIndex2($j) & ']' & ' --> ' & $ar[_getIndex1($i)][_getIndex2($j)] & @CRLF)
    • $tRectDraw.Bottom
      ConsoleWrite('@@_Debug_line' & @TAB & @TAB & @ScriptLineNumber & ' var: ' & '$tRectDraw.Bottom' & ' --> ' & $tRectDraw.Bottom & @CRLF)
    • $gm["Index"]
      ConsoleWrite('@@_Debug_line' & @TAB & @TAB & @ScriptLineNumber & ' var: ' & '$gm[' & "Index" & ']' & ' --> ' & $gm["Index"] & @CRLF)
    
    
    with the parameter
      'err' is added: & "!@ " & @TAB & "#Error: " & @error & @CRLF)
      'err_ext' is added: & "!@ " & @TAB & "#Error: " & @error & @TAB & "#Extended: " & @extended & @CRLF)
      'ext' is added: & "!@ " & @TAB & "#Extended: " & @extended & @CRLF)
    
    
    Howto use:
      Place the cursor in the variable's base name or in front of the "$" and press the key combination.
      If the variable is the first in the line, you can set the cursor to any position before it.
      If the variable is the last one in the line, you can set the cursor to any position after it.
      If the first part of the variable is enclosed in round brackets, an attempt is made to resolve the entire part as one value.
    ]]
    
    
    local debugAU3 = {
        caret = nil,
        sline = nil,
        iline = nil,
        pstart = nil,
        pend = nil,
        svar = "$",
    
    
        compareStr = function(self, _t, _v)
            for _, v in pairs(_t) do
                if v == _v then return true end
            end
            return false
        end,
    
    
        searchStartLeft = function(self)
            if editor.CharAt[self.caret] == 36 then return self.caret end
            while (editor.CharAt[editor.CurrentPos]) ~= 36 do
                editor:CharLeft()
                if (editor.CurrentPos == 0) or (editor:LineFromPosition(editor.CurrentPos) < self.iline) then
                    -- no match to the left of the cursor (now at editor position '0' or in the previous line)
                    -- search on the right side
                    return self:searchStartRight()
                end
            end
            return editor.CurrentPos
        end,
    
    
        searchStartRight = function(self)
            -- back to start position and search on the right side for the first "$"
            editor.CurrentPos = self.caret
            repeat
                editor:CharRight()
            until editor.CharAt[editor.CurrentPos] == 36
            return editor.CurrentPos
        end,
    
    
        searchVar = function(self)
            self.caret = editor.CurrentPos
            self.iline = editor:LineFromPosition(self.caret)
            self.sline = editor:GetCurLine()
            if not self.sline:find("%$") then return nil end -- the line does not contain a variable
            self.pstart = self:searchStartLeft()
            local chrnext
    
    
            local function nextCharLineEnd()
                if editor:PositionAfter(editor.CurrentPos) == editor.LineEndPosition[self.iline] then
                return true else return false end
            end
    
    
            local function grabArray(_addcurrent)
                if string.char(editor.CharAt[editor:PositionAfter(editor.CurrentPos)]) ~= '[' then return nil end
                if _addcurrent ~= nil then
                    self.svar = self.svar..string.char(editor.CharAt[editor.CurrentPos])
                end
                local count, slast = 0, ''
                repeat
                    editor:CharRight()
                    chrnext = string.char(editor.CharAt[editor.CurrentPos])
                    if chrnext == '[' then
                        count = count +1
                    elseif chrnext == ']' then
                        if slast == '[' then
                            self.pend = self.pend -1
                            self.svar = self.svar:sub(1,(self.svar:len()-1))
                            break
                        end
                        count = count -1
                    end
                    slast = chrnext
                    self.svar = self.svar..chrnext
                    self.pend = editor.CurrentPos
                    if nextCharLineEnd() == true then break end
                until (count == 0) and (string.char(editor.CharAt[editor:PositionAfter(editor.CurrentPos)]) ~= '[')
                return true
            end
    
    
            local function grabDotNotation(_addcurrent)
                if string.char(editor.CharAt[editor:PositionAfter(editor.CurrentPos)]) ~= '.' then return nil end
                if nextCharLineEnd() == true then return nil end
                if _addcurrent ~= nil then
                    self.svar = self.svar..string.char(editor.CharAt[editor.CurrentPos])
                end
                while editor:PositionAfter(editor.CurrentPos) ~= editor.CurrentPos do
                    editor:CharRight()
                    chrnext = string.char(editor.CharAt[editor.CurrentPos])
                    if chrnext:find('[%._%w]') then
                        self.svar = self.svar..chrnext
                        self.pend = editor.CurrentPos
                    else
                        editor:CharLeft()
                        self.pend = self.pend -1
                        break
                    end
                end
                return true
            end
    
    
            local function grabRoundBraces()
                if string.char(editor.CharAt[editor:PositionAfter(editor.CurrentPos)]) ~= ')' then return nil end
                if nextCharLineEnd() == true then return nil end
                if (nextCharLineEnd() == false) and (editor:PositionFromLine(self.iline) < self.pstart) then
                    if (string.char(editor.CharAt[editor:PositionBefore(self.pstart)]) == '(') and
    (string.char(editor.CharAt[editor:PositionAfter(editor.CurrentPos)]) == ')') then
                        editor:CharRight() -- goto ')'
                        if (grabDotNotation(true) ~= nil) or (grabArray(true) ~= nil) then
                            self.svar = '('..self.svar
                        end
                    end
                end
                return true
            end
    
    
            -- base name: $var
            while editor:PositionAfter(editor.CurrentPos) ~= editor.CurrentPos do
                chrnext = editor:PositionAfter(editor.CurrentPos)
                if string.char(editor.CharAt[chrnext]):find('[_%w]') then
                    editor:CharRight()
                    self.svar = self.svar..string.char(editor.CharAt[editor.CurrentPos])
                else -- caret now before the last char from variable name
                    self.pend = editor.CurrentPos
                    break
                end
            end
    
    
            -- base name and possible dot notation: $var.abc
            grabDotNotation()
            -- base name and possible dot notation and following possible dot notation or array index
            -- ($var.abc).def ($var.abc)[$i][$j][$k]
            grabRoundBraces()
    
    
            -- follows: space, comma, line end or a operator --> the variable is complete
            chrnext = string.char(editor.CharAt[editor:PositionAfter(self.pend)])
            if self:compareStr({' ','+','-','*','/','^',',','\r','\n'}, chrnext) then return true end
    
    
            -- grabs the array, if any, in arbitrary dimensions
            if chrnext == '[' then
                -- each pair "[..]" will added
                grabArray()
                -- checks for possible following dot notation and add
                grabDotNotation()
            end
    
    
            -- if result in round braces and
            -- dot notation and/or array indices was found (also nested)
            -- example ("|" is the caret position):
            -- $f4 = ($array[((($va|r1).abc).def).ghi)][$y][$z][$var2][$var3]).prop
            -- found: ((($var1).abc).def).ghi
            -- $f4 = ($array[((($va|r1).abc).def).ghi)][$y][$z][$var2][$var3]).prop
            -- found: ($array[((($var1).abc).def).ghi)][$y][$z][$var2][$var3]).prop
            while true do
                if grabRoundBraces() == nil then break end
            end
    
    
            return true
        end,
    
    
        writeDebugLine = function(self)
            local function separateIndices(_s, _fromstart)
                local ret = ''
                local s, e, l = _s:find('%b[]')
                if s == nil then return _s end
                if _fromstart == true then ret = _s:sub(1, s -1) end
                repeat
                    l = e
                    if s > l +1 then ret = ret.._s:sub(l +1, s -1) end
                    ret = ret.."[' & ".._s:sub(s +1, e -1).." & ']"
                    s, e = _s:find('%b[]', l)
                until s == nil
                if e ~= nil and e < _s:len() then ret = ret.._s:sub(e +1) end
                return ret
            end
    
    
            if self:searchVar() == nil then
                print("!> No or no valid variable found in line ["..(self.iline +1).."].")
            else
                local swrite, out, serr = self.svar, '', ''
                if props['debug.err.au3'] == 'err' then
                    serr = ' & "!@ " & @TAB & "#Error: " & @error & @CRLF'
                elseif props['debug.err.au3'] == 'err_ext' then
                    serr = ' & "!@ " & @TAB & "#Error: " & @error & @TAB & "#Extended: " & @extended & @CRLF'
                elseif props['debug.err.au3'] == 'ext' then
                    serr = ' & "!@ " & @TAB & "#Extended: " & @extended & @CRLF'
                end
    
    
                -- for very special variables use raw mode (debug.err.au3.raw=1)
                if props['debug.err.au3.raw'] == '0' then
                    -- if starts with "(" --> execute the code between the balanced "()"
                    local n, open, close, cl_last = 0, swrite:find('%b()')
                    if open ~= nil and open == 1 then
                        repeat
                            cl_last = close
                            n = n +1
                            if n == 1 then out = out.."(' & "..swrite:sub(open +1, close -1).." & ')" end
                            open, close = swrite:find('%b()', cl_last)
                            if open ~= nil then
                                out = out..separateIndices(swrite:sub(cl_last +1, open -1))
                            else
                                out = out..separateIndices(swrite:sub(cl_last +1))
                            end
                        until open == nil
                    else
                        out = separateIndices(self.svar, true)
                    end
                end
    
    
                out = "\nConsoleWrite('@@_Debug_line' & @TAB & @TAB & @ScriptLineNumber & ' var: ' & '"..out.."' & ' --> ' & "..self.svar.." & @CRLF"..serr..")"
                editor:LineEnd()
                editor:InsertText(editor.CurrentPos, out)
                editor.CurrentPos = self.caret
                editor:SetSel(self.caret, self.caret)
            end
        end
    }
    
    
    debugAU3:writeDebugLine()
    Alles anzeigen

    Dateien

    DebugAU3.lua 13,22 kB – 314 Downloads
  • Geht nicht gibts nicht ?

    • BugFix
    • 22. Oktober 2023 um 13:50
    Zitat von Peter S. Taler

    Danke für den Hinweis... könnte man eigentlich als Bug melden. Denn eine klare Trennung zwischen Suchwort und reg Expression gibt es dann, da das Suchwort von ist, ja eigentlich nicht?

    Nein.

    Entweder du hast ein reines Suchwort (String) oder du verwendest einen Regulären Ausdruck, der auf dein Suchwort zutrifft.

    Um auf dein Bsp. mit 'vonhiernachHause' zurück zu kommen, wäre als Pattern möglich:

    - Ausdruck beginnt mit "von"

    - gefolgt von 1-beliebig viele Zeichen (hier könntest du noch verfeinern auf z. B. nur Buchstaben)

    Pattern: "^von. *"

  • SciTE - einfach zu Dark Theme switchen (+ Lua Dark Theme)

    • BugFix
    • 15. Oktober 2023 um 22:16
    Zitat von Kanashius

    Dark Theme Darcula

    :/ Schreibfehler? - Dracula?

    .. oder Wortspiel Darcula?

  • SciTE - einfach zu Dark Theme switchen (+ Lua Dark Theme)

    • BugFix
    • 15. Oktober 2023 um 09:47
    Zitat von Schnuffel

    ui, ein Theme-battle

    Nichts dagegen. ;)

    Mars & Kanashius

    Ihr habt die Änderungen in der SciTEUser.properties eingefügt. Genau das wollte ich aber vermeiden, weil man dann eben nicht mal schnell ein anderes Theme testen kann.

    - Alle Farbzuweisungen in eine eigene *.properties stecken.

    - Diese theme.properties als letzten Befehl in der SciTEUser.properties importieren.

    Mars

    Meine Datei ist so groß, weil ich neben Kommentarzeilen auch einen Block mit Farbvariablen eingefügt habe.

  • SciTE - einfach zu Dark Theme switchen (+ Lua Dark Theme)

    • BugFix
    • 13. Oktober 2023 um 17:59

    Mit SciTE ein Dark Theme zu verwenden ist (beim ersten mal) etwas aufwändig. Es genügt ja nicht die Farben in den Styles von AutoIt zu ändern - es müssen sämtliche Properties rausgesucht werden, die eine Farbe verwenden.

    Ebenso müssen die Styles für die Dateitypen angepasst werden, die man selbst auch in SciTE öffnet. Das betrifft auf jeden Fall die *.properties.

    Der einfachste Weg ist, alle Angaben in einer eigenen Properties Datei zu definieren und diese als letzten Aufruf in die SciTEUser.properties zu setzen. Auf diese Weise kann man auch verschiedene Themes vorbereiten und nur durch Änderung des Aufrufs diese laden.

    Es braucht auch keine andere Zuweisung in der SciTEUser.properties auskommentiert zu werden, da die geänderten Werte zuletzt geladen werden und somit vorherige Zuweisungen überschreiben.

    Ich habe die verwendeten Farben vorher als Variablen definiert. Kann man natürlich weglassen und die Farbwerte direkt schreiben. Ich finde aber "sprechende" Farbnamen verständlicher.

    EDIT:

    Für die Bearbeitung von Lua-Skripten in SciTE, habe ich jetzt ein adäquates Theme erstellt.

    Da für Lua in den Styles und Keyworddefinitionen ziemlich viel bunt zusammengeworfen wurde, habe ich das etwas umgebogen. Jetzt haben: if then local etc. eine eigene Keywordclass.

    Ebenso habe ich alle Editorfunktionen (editor: /editor. /output: /output.) der Funktionsklasse zugefügt. (Ich weiß, dass nicht alle editor-Funktionen auch als output-Funktionen existieren, habe aber trotzdem 1:1 übernommen - ging am Schnellsten und schadet zumindest nicht. ^^ )

    Weiterhin gibt es eine Klasse "keywords.user" für eigene Funktionen, die ebenfalls im Style der Funktionen dargestellt werden. Dort habe ich z.Zt. nur "self" zu stehen - ist zwar keine Funktion, grenzt aber den Zugriff auf Methoden und Eigenschaften gut ab.

    Meine dark.theme.properties
    .properties
    #========= COLOR VARIABLEN
    # back colors
    black.29=#1D1D1D
    black.16=#101010
    dark.slate.gray=#2F4F4F
    #-------------------------
    dark.back=$(black.29)
    #-------------------------
    #fore colors
    white.antique=#FAEBD7
    white.snow=#FFFAFA
    gray.lite=#D3D3D3
    #-------------------------
    dark.fore=$(gray.lite)
    #-------------------------
    red=#FF0000
    white=#FFFFFF
    yellow=#FFA200
    orange=#FFC90E
    green=#00A800
    magenta=#FF00FF
    khaki=#F0E68C
    chocolate=#D2691E
    peachpuff=#FFDAB9
    red.light=#FF3020
    red.brown=#690015
    red.medium=#FF201F
    blue.steel=#46697E
    yellow.light=#FFFF00
    green.yellow=#ADFF2F
    green.lightsea=#20B2AA
    green.mediumsea=#3CB371
    cyan.light=#D8F9F9
    khaki.dark=#BDB76B
    magenta.dark=#8B008B
    magenta.medium=#C864C8
    magenta.nobright=#D200D2
    blue.royal=#4169E1
    blue.deepsky=#00BFFF
    black.light=#282321
    pink.hot=#FF69B4
    
    
    #========= FOLDING
    fold.highlight.colour=$(red)
    # 6 digit colours (#FF3020) and 8 digit colour+alpha (#FF302040) are supported.
    fold.line.colour=$(red.light)
    fold.margin.colour=$(dark.back)
    fold.margin.highlight.colour=$(dark.back)
    fold.fore=$(blue.steel)
    fold.back=$(dark.back)
    
    
    #========= GLOBAL DEFAULT STYLES FOR ALL LANGUAGES
    # Default
    style.*.32=$(font.base),fore:$(dark.fore),back:$(dark.back)
    # Display line numbers in the margin
    style.*.33=fore:$(dark.fore),back:$(dark.back)
    # Brace highlight
    style.*.34=fore:$(cyan.light),back:$(dark.back)
    # Brace incomplete highlight
    style.*.35=fore:$(khaki.dark),back:$(dark.back)
    # Control characters
    style.*.36=
    # Indentation guides
    style.*.37=fore:$(khaki.dark),back:$(dark.back)
    # Calltipps
    style.*.38=fore:$(red),back:$(dark.back)
    
    
    #========= CARET
    # the background colour and translucency used for line containing the caret
    caret.line.back=$(black.16)
    caret.line.back.alpha=256
    caret.fore=$(dark.fore)
    #~ caret.additional.fore=
    selection.fore=$(orange)
    selection.alpha=50
    selection.back=$(magenta.dark)
    
    
    #========= INLINE ERROR
    # default
    style.error.0=fore:$(dark.fore),back:$(dark.back)
    # warnings
    style.error.1=fore:$(magenta.nobright),back:$(khaki)
    # errors
    style.error.2=fore:$(white),back:$(red)
    # fatal errors
    #~ style.error.3=
    # !! The severity of a message is inferred from finding the text "warning", "error", or "fatal" in the message.
    
    
    #========= OUTPUT PANE uses errorlist colors
    style.errorlist.32=$(font.small),$(dark.back)
    style.errorlist.0=fore:$(dark.fore),back:$(dark.back),eolfilled
    # diff changed >
    style.errorlist.4=fore:$(blue.royal),back:$(dark.back),eolfilled
    # diff changed !
    style.errorlist.10=fore:$(red.light),back:$(dark.back),eolfilled
    # diff addition +
    style.errorlist.11=fore:$(green),back:$(dark.back),eolfilled
    # diff deletion -
    style.errorlist.12=fore:$(yellow),back:$(dark.back),eolfilled
    # diff message --- and +++
    style.errorlist.13=fore:$(magenta),back:$(dark.back),eolfilled
    
    
    #========= ERROR MARKER
    # The colours used to indicate error and warning lines in both the edit and output panes are set with these two values.
    # If there is a margin on a pane then a symbol is displayed in the margin to indicate the error message for the output pane
    # or the line causing the error message for the edit pane.
    # The error.marker.fore is used as the outline colour.
    error.marker.fore=$(yellow.light)
    # The error.marker.back is used as the fill colour of the symbol.
    # If there is no margin then the background to the line is set to the error.marker.back colour.
    error.marker.back=$(black.light)
    
    
    highlight.current.word.colour=$(blue.deepsky)
    
    
    calltips.color.highlight=$(red)
    
    
    edge.colour=$(red.brown)
    
    
    #========= BOOKMARKS (display in the margin)
    # The colours used to display bookmarks in the margin.
    # If bookmark.fore is empty then a blue sphere is used.
    # Symbols: http://www.scintilla.org/ScintillaDoc.html#SCI_MARKERDEFINE (0 - 31)
    # 0-Kreis, 1-Quadrat, 2-Dreieck, 3-Rechteck, 4-Pfeil r., 8-Plus, 22-Full line, 23-..., 24->>>, 29-Underline
    bookmark.symbol=2
    bookmark.fore=$(green.yellow)
    bookmark.back=$(green.yellow)
    
    
    ###=== PROPERTIES STYLES =======
    # Default
    style.props.0=fore:$(blue.deepsky)
    # Comment
    style.props.1=fore:$(dark.fore),$(font.comment)
    # Selection
    style.props.2=$(colour.string),back:$(magenta.dark),eolfilled
    # Assignment operator
    style.props.3=fore:$(red.light)
    # Default value (@)
    style.props.4=$(dark.fore)
    # Key
    style.props.5=fore:$(green),bold
    # Background
    style.props.32=$(font.base),back:$(dark.back)
    # Matched Operators
    style.props.34=fore:$(red),notbold
    style.props.35=fore:$(red.light),notbold
    comment.block.props=#~
    ###=============================
    
    
    #========= COLOR SETTINGS AutoIt
    #Background
    style.au3.32=style.*.32=$(font.base),back:$(dark.back)
    #CaretLineBackground
    caret.line.back=$(black.16)
    # Brace highlight
    style.au3.34=fore:$(cyan.light),back:$(dark.back),bold
    # Brace incomplete highlight
    style.au3.35=fore:$(khaki.dark),back:$(dark.back),bold
    # White space
    style.au3.0=fore:$(dark.fore)
    # Comment line
    style.au3.1=fore:$(green.lightsea),italics
    # Comment block
    style.au3.2=fore:$(green.mediumsea),back:$(black.light),italics,eolfilled
    # Number
    style.au3.3=fore:$(blue.deepsky),back:$(dark.back)
    # Function
    style.au3.4=fore:$(khaki),back:$(dark.back)
    # Keyword
    style.au3.5=fore:$(chocolate),back:$(dark.back)
    # Macro
    style.au3.6=fore:$(magenta.nobright),back:$(dark.back)
    # String
    style.au3.7=fore:$(pink.hot),back:$(dark.back)
    # Operator
    style.au3.8=fore:$(khaki.dark),back:$(dark.back)
    # Variable
    style.au3.9=fore:$(dark.fore),back:$(dark.back),italics
    # Send keys in string
    style.au3.10=fore:$(red.medium),back:$(dark.back)
    # Pre-Processor
    style.au3.11=fore:$(peachpuff),back:$(dark.back)
    # Special
    style.au3.12=fore:$(peachpuff),back:$(dark.back)
    # Abbrev-Expand
    style.au3.13=fore:$(orange),back:$(dark.back)
    # COM Objects
    style.au3.14=fore:$(magenta.medium),back:$(dark.back),italics
    #Standard UDF's
    style.au3.15=fore:$(blue.royal),back:$(dark.back),italics
    #User UDF's
    style.au3.16=$(style.au3.15)
    Alles anzeigen
    dark.theme.lua.properties
    .properties
    # Lua styles
    
    
    #========================================================= Globals already set in default dark.theme
    # Default
    #~ style.*.32=$(font.base),fore:#D3D3D3,back:#1D1D1D
    # Display line numbers in the margin
    #~ style.*.33=fore:#D3D3D3,back:#2F4F4F
    # Brace highlight
    #~ style.*.34=fore:#D8F9F9,back:#1D1D1D
    # Brace incomplete highlight
    #~ style.*.35=fore:#BDB76B,back:#1D1D1D
    # Control characters
    #~ style.*.36=
    # Indentation guides
    #~ style.*.37=fore:#BDB76B,back:#1D1D1D
    # Calltipps
    #~ style.*.38=fore:#FF0000,back:#1D1D1D
    # FOLDING
    #~ fold.highlight.colour=#FF0000
    # 6 digit colours (#FF3020) and 8 digit colour+alpha (#FF302040) are supported.
    #~ fold.line.colour=#FF3020
    #~ fold.margin.colour=#1D1D1D
    #~ fold.margin.highlight.colour=#1D1D1D
    #~ fold.fore=#46697E
    #~ fold.back=#1D1D1D
    # CARET
    # the background colour and translucency used for line containing the caret
    #~ caret.line.back=#101010
    #~ caret.line.back.alpha=256
    #~ caret.fore=#D3D3D3
    #~ caret.additional.fore=
    #~ selection.fore=#FFC90E
    #~ selection.alpha=50
    #~ selection.back=#8B008B
    #===================================================================================================
    
    
    
    
    #Default
    style.lua.32=$(font.code.base),back:#1D1D1D
    # White space: Visible only in View Whitespace mode (or if it has a back colour)
    style.lua.0=fore:#DCDCCC
    # Block comment (Lua 5.0)
    style.lua.1=$(colour.code.comment.box),$(font.code.comment.box),back:#D0F0F0,eolfilled
    style.lua.1=fore:#7F9F7F,back:#282321,italics,eolfilled
    # Line comment
    style.lua.2=fore:#709F7F,italics
    # Doc comment -- Not used in Lua (yet?)
    style.lua.3=$(colour.notused),$(font.notused)
    # Number
    style.lua.4=fore:#8CD0B8,back:#1D1D1D
    # Keyword --- Function !!
    style.lua.5=fore:#00BFFF,back:#1D1D1D
    # (Double quoted) String
    style.lua.6=fore:#CC9393,back:#1D1D1D
    # Character (Single quoted string)
    style.lua.7=fore:#CC9393,back:#1D1D1D
    # Literal string
    style.lua.8=fore:#CC9393,back:#1D1D1D
    # Preprocessor (obsolete in Lua 4.0 and up)
    style.lua.9=fore:#FFCFAF,back:#1D1D1D
    # Operators
    style.lua.10=fore:#9F9D61,back:#1D1D1D
    # Identifier (everything else...)
    #~ style.lua.11=fore:#DCDCCC,back:#1D1D1D,italics
    style.lua.11=fore:#F0E68C,back:#1D1D1D,italics
    # End of line where string is not closed
    style.lua.12=back:#880015,eolfilled
    # Other keywords (bozo test colors, but toned down ;)
    style.lua.13=$(style.lua.5),back:#1D1D1D
    
    
    # table. / string. / math. / bit32. / utf8.
    style.lua.14=fore:#00BFFF,back:#1D1D1D
    # coroutine. / io. / os. / package. / module / require
    style.lua.15=fore:#D200D2,back:#1D1D1D
    # keywords5
    style.lua.16=fore:#D2691E,back:#1D1D1D
    
    
    # 17, 18, 19 are not recognized
    #~ style.lua.17=fore:#FF0000,back:#1D1D1D
    #~ style.lua.18=fore:#FF0000,back:#1D1D1D
    #~ style.lua.19=fore:#FF0000,back:#1D1D1D
    
    
    # Labels
    style.lua.20=fore:#7F7F00,back:#1D1D1D
    # Braces are only matched in operator style
    braces.lua.style=10
    
    
    # Add keywords5, 6, 7 & 8 for user-defined libraries
    # ONLY #5 are recognized!!!
    # delete default class: keywords.
    keywords.$(file.patterns.lua)=
    # for unique style set them as class: keywords5.
    keywords5.$(file.patterns.lua)=\
    and break do else elseif \
    end for function if in \
    local nil not or repeat \
    return then until while false true goto
    
    
    #~ keywords6.$(file.patterns.lua)=keyword_6
    #~ keywords7.$(file.patterns.lua)=keyword_7
    #~ keywords8.$(file.patterns.lua)=keyword_8
    
    
    ###########################################
    # delete "require" from both properties (delete all, set new without "require")
    # is correctly included in keyword class 4.
    keywordclass2.lua50=
    keywordclass2.lua50=$(keywordclass2.lua5) \
    getfenv gcinfo loadlib loadstring \
    setfenv unpack _LOADED LUA_PATH _REQUIREDNAME
    
    
    keywordclass2.lua5x=
    keywordclass2.lua5x=$(keywordclass2.lua5) \
    getfenv gcinfo load loadlib loadstring \
    select setfenv unpack \
    _LOADED LUA_PATH _REQUIREDNAME \
    package rawlen package bit32 utf8 _ENV
    ###########################################
    
    
    # Define keywords
    # User funcs
    keywords.user=\
    self
    
    
    # Debug (not used by default)
    keywords.debug=\
    debug.debug debug.gethook debug.getinfo debug.getlocal debug.getupvalue \
    debug.getfenv debug.getmetatable debug.getregistry debug.getuservalue \
    debug.setlocal debug.setupvalue debug.sethook debug.traceback \
    debug.setfenv debug.setmetatable debug.setuservalue \
    debug.upvalueid debug.upvaluejoin
    
    
    # SciTE keywords
    keywords.scite.lua=\
    scite.ConstantName scite.MenuCommand scite.Open \
    scite.ReloadProperties scite.SendEditor scite.SendOutput \
    scite.StripShow scite.StripSet scite.StripSetList scite.StripValue
    
    
    # Editor & Output Pane keywords
    keywords.editor.lua=\
    editor:append editor:findtext editor:insert editor:match editor:remove editor:textrange editor:AddRefDocument \
    editor:AddSelection editor:AddStyledText editor:AddText editor:AddUndoAction editor:Allocate editor:AnnotationClearAll \
    editor:AnnotationGetStyles editor:AnnotationGetText editor:AnnotationSetStyles editor:AnnotationSetText \
    editor:AppendText editor:AssignCmdKey editor:AutoCActive editor:AutoCCancel editor:AutoCComplete editor:AutoCGetCurrent \
    editor:AutoCGetCurrentText editor:AutoCPosStart editor:AutoCSelect editor:AutoCShow editor:AutoCStops \
    editor:BackTab editor:BeginUndoAction editor:BraceBadLight editor:BraceHighlight editor:BraceMatch editor:CallTipActive \
    editor:CallTipCancel editor:CallTipPosStart editor:CallTipSetHlt editor:CallTipShow editor:Cancel editor:ChangeLexerState \
    editor:CanPaste editor:CanRedo editor:CanUndo editor:CharLeft editor:CharLeftExtend editor:CharLeftRectExtend \
    editor:CharPositionFromPoint editor:CharPositionFromPointClose editor:CharRight editor:CharRightExtend \
    editor:CharRightRectExtend editor:ChooseCaretX editor:Clear editor:ClearAll editor:ClearAllCmdKeys editor:ClearCmdKey \
    editor:ClearDocumentStyle editor:ClearRegisteredImages editor:ClearSelections editor:Colourise editor:ContractedFoldNext \
    editor:ConvertEOLs editor:Copy editor:CopyAllowLine editor:CopyRange editor:CopyText editor:CreateDocument \
    editor:Cut editor:DeleteBack editor:DeleteBackNotLine editor:DescribeKeyWordSets editor:DescribeProperty \
    editor:DelLineLeft editor:DelLineRight editor:DelWordLeft editor:DelWordRight editor:DelWordRightEnd \
    editor:DocLineFromVisible editor:DocumentEnd editor:DocumentEndExtend editor:DocumentStart editor:DocumentStartExtend \
    editor:EditToggleOvertype editor:EmptyUndoBuffer editor:EncodedFromUTF8 editor:EndUndoAction editor:EnsureVisible \
    editor:EnsureVisibleEnforcePolicy editor:FindColumn editor:FormatRange editor:FormFeed editor:GetCurLine \
    editor:GetHotspotActiveBack editor:GetHotspotActiveFore editor:GetLastChild editor:GetLexerLanguage editor:GetLine \
    editor:GetLineSelEndPosition editor:GetLineSelStartPosition editor:GetProperty editor:GetPropertyExpanded \
    editor:GetSelText editor:GetStyledText editor:GetTag editor:GetText editor:GetTextRange editor:GotoLine \
    editor:GotoPos editor:GrabFocus editor:HideLines editor:HideSelection editor:Home editor:HomeDisplay \
    editor:HomeDisplayExtend editor:HomeExtend editor:HomeRectExtend editor:HomeWrap editor:HomeWrapExtend \
    editor:IndicatorAllOnFor editor:IndicatorClearRange editor:IndicatorEnd editor:IndicatorFillRange editor:IndicatorStart \
    editor:IndicatorValueAt editor:InsertText editor:LineCopy editor:LineCut editor:LineDelete editor:LineDown \
    editor:LineDownExtend editor:LineDownRectExtend editor:LineDuplicate editor:LineEnd editor:LineEndDisplay \
    editor:LineEndDisplayExtend editor:LineEndExtend editor:LineEndRectExtend editor:LineEndWrap editor:LineEndWrapExtend \
    editor:LineFromPosition editor:LineLength editor:LineScroll editor:LineScrollDown editor:LineScrollUp \
    editor:LinesJoin editor:LinesSplit editor:LineTranspose editor:LineUp editor:LineUpExtend editor:LineUpRectExtend \
    editor:LoadLexerLibrary editor:LowerCase editor:MarginGetStyles editor:MarginGetText editor:MarginSetStyles \
    editor:MarginSetText editor:MarginTextClearAll editor:MarkerAdd editor:MarkerAddSet editor:MarkerDefine \
    editor:MarkerDefinePixmap editor:MarkerDelete editor:MarkerDeleteAll editor:MarkerDeleteHandle editor:MarkerGet \
    editor:MarkerLineFromHandle editor:MarkerNext editor:MarkerPrevious editor:MarkerSetAlpha editor:MarkerSymbolDefined \
    editor:MoveCaretInsideView editor:NewLine editor:Null editor:PageDown editor:PageDownExtend editor:PageDownRectExtend \
    editor:PageUp editor:PageUpExtend editor:PageUpRectExtend editor:ParaDown editor:ParaDownExtend editor:ParaUp \
    editor:ParaUpExtend editor:Paste editor:PointXFromPosition editor:PointYFromPosition editor:PositionAfter \
    editor:PositionBefore editor:PositionFromLine editor:PositionFromPoint editor:PositionFromPointClose \
    editor:PrivateLexerCall editor:PropertyNames editor:PropertyType editor:Redo editor:RegisterImage editor:ReleaseDocument \
    editor:ReplaceSel editor:ReplaceTarget editor:ReplaceTargetRE editor:RotateSelection editor:ScrollCaret \
    editor:SearchAnchor editor:SearchInTarget editor:SearchNext editor:SearchPrev editor:SelectAll editor:SelectionDuplicate \
    editor:SetCharsDefault editor:SetFoldFlags editor:SetFoldMarginColour editor:SetFoldMarginHiColour editor:SetHotspotActiveBack \
    editor:SetHotspotActiveFore editor:SetLengthForEncode editor:SetLexerLanguage editor:SetSavePoint editor:SetSel \
    editor:SetSelBack editor:SetSelection editor:SetSelFore editor:SetStyling editor:SetStylingEx editor:SetText \
    editor:SetVisiblePolicy editor:SetWhitespaceBack editor:SetWhitespaceFore editor:SetXCaretPolicy editor:SetYCaretPolicy \
    editor:ShowLines editor:StartRecord editor:StartStyling editor:StopRecord editor:StutteredPageDown editor:StutteredPageDownExtend \
    editor:StutteredPageUp editor:StutteredPageUpExtend editor:StyleClearAll editor:StyleGetFont editor:StyleResetDefault \
    editor:SwapMainAnchorCaret editor:Tab editor:TargetAsUTF8 editor:TargetFromSelection editor:TextHeight \
    editor:TextWidth editor:ToggleCaretSticky editor:ToggleFold editor:Undo editor:UpperCase editor:UsePopUp \
    editor:UserListShow editor:VCHome editor:VCHomeExtend editor:VCHomeRectExtend editor:VCHomeWrap editor:VCHomeWrapExtend \
    editor:VerticalCentreCaret editor:VisibleFromDocLine editor:WordEndPosition editor:WordLeft editor:WordLeftEnd \
    editor:WordLeftEndExtend editor:WordLeftExtend editor:WordPartLeft editor:WordPartLeftExtend editor:WordPartRight \
    editor:WordPartRightExtend editor:WordRight editor:WordRightEnd editor:WordRightEndExtend editor:WordRightExtend \
    editor:WordStartPosition editor:WrapCount editor:ZoomIn editor:ZoomOut editor.AdditionalCaretFore editor.AdditionalCaretsBlink \
    editor.AdditionalCaretsVisible editor.AdditionalSelAlpha editor.AdditionalSelBack editor.AdditionalSelectionTyping \
    editor.AdditionalSelFore editor.Anchor editor.AnnotationLines editor.AnnotationStyle editor.AnnotationStyleOffset \
    editor.AnnotationVisible editor.AutoCAutoHide editor.AutoCCancelAtStart editor.AutoCChooseSingle editor.AutoCDropRestOfWord \
    editor.AutoCFillUps editor.AutoCIgnoreCase editor.AutoCMaxHeight editor.AutoCMaxWidth editor.AutoCSeparator \
    editor.AutoCTypeSeparator editor.BackSpaceUnIndents editor.BufferedDraw editor.CallTipBack editor.CallTipFore \
    editor.CallTipForeHlt editor.CallTipUseStyle editor.CaretFore editor.CaretLineBack editor.CaretLineBackAlpha \
    editor.CaretLineVisible editor.CaretPeriod editor.CaretSticky editor.CaretStyle editor.CaretWidth editor.CharacterPointer \
    editor.CharAt editor.CodePage editor.Column editor.ControlCharSymbol editor.CurrentPos editor.Cursor \
    editor.DirectFunction editor.DirectPointer editor.DocPointer editor.EdgeColour editor.EdgeColumn editor.EdgeMode \
    editor.EndAtLastLine editor.EndStyled editor.EOLMode editor.ExtraAscent editor.ExtraDescent editor.FirstVisibleLine \
    editor.Focus editor.FoldExpanded editor.FoldLevel editor.FoldParent editor.FontQuality editor.HighlightGuide \
    editor.HotspotActiveUnderline editor.HotspotSingleLine editor.HScrollBar editor.Indent editor.IndentationGuides \
    editor.IndicAlpha editor.IndicatorCurrent editor.IndicatorValue editor.IndicFore editor.IndicStyle editor.IndicUnder \
    editor.KeysUnicode editor.KeyWords editor.LayoutCache editor.Length editor.Lexer editor.LineCount editor.LineEndPosition \
    editor.LineIndentation editor.LineIndentPosition editor.LinesOnScreen editor.LineState editor.LineVisible \
    editor.MainSelection editor.MarginLeft editor.MarginMaskN editor.MarginRight editor.MarginSensitiveN \
    editor.MarginStyle editor.MarginStyleOffset editor.MarginTypeN editor.MarginWidthN editor.MarkerFore \
    editor.MarkerBack editor.MaxLineState editor.ModEventMask editor.Modify editor.MouseDownCaptures editor.MouseDwellTime \
    editor.MultiPaste editor.MultipleSelection editor.Overtype editor.PasteConvertEndings editor.PositionCache \
    editor.PrintColourMode editor.PrintMagnification editor.PrintWrapMode editor.Property editor.PropertyInt \
    editor.ReadOnly editor.RectangularSelectionAnchor editor.RectangularSelectionAnchorVirtualSpace editor.RectangularSelectionCaret \
    editor.RectangularSelectionCaretVirtualSpace editor.RectangularSelectionModifier editor.ScrollWidth editor.ScrollWidthTracking \
    editor.SearchFlags editor.SelAlpha editor.SelectionEnd editor.SelectionIsRectangle editor.SelectionMode \
    editor.SelectionNAnchor editor.SelectionNAnchorVirtualSpace editor.SelectionNCaret editor.SelectionNCaretVirtualSpace \
    editor.SelectionNEnd editor.SelectionNStart editor.Selections editor.SelectionStart editor.SelEOLFilled \
    editor.Status editor.StyleAt editor.StyleBack editor.StyleBits editor.StyleBitsNeeded editor.StyleBold \
    editor.StyleCase editor.StyleChangeable editor.StyleCharacterSet editor.StyleEOLFilled editor.StyleFont \
    editor.StyleFore editor.StyleHotSpot editor.StyleItalic editor.StyleSize editor.StyleUnderline editor.StyleVisible \
    editor.TabIndents editor.TabWidth editor.TargetEnd editor.TargetStart editor.TextLength editor.TwoPhaseDraw \
    editor.UndoCollection editor.UsePalette editor.UseTabs editor.ViewEOL editor.ViewWS editor.VirtualSpaceOptions \
    editor.VScrollBar editor.WhitespaceChars editor.WhitespaceSize editor.WordChars editor.WrapIndentMode \
    editor.WrapMode editor.WrapStartIndent editor.WrapVisualFlags editor.WrapVisualFlagsLocation editor.XOffset
    
    
    keywords.output.lua=\
    output:append output:findtext output:insert output:match output:remove output:textrange output:AddRefDocument \
    output:AddSelection output:AddStyledText output:AddText output:AddUndoAction output:Allocate output:AnnotationClearAll \
    output:AnnotationGetStyles output:AnnotationGetText output:AnnotationSetStyles output:AnnotationSetText \
    output:AppendText output:AssignCmdKey output:AutoCActive output:AutoCCancel output:AutoCComplete output:AutoCGetCurrent \
    output:AutoCGetCurrentText output:AutoCPosStart output:AutoCSelect output:AutoCShow output:AutoCStops \
    output:BackTab output:BeginUndoAction output:BraceBadLight output:BraceHighlight output:BraceMatch output:CallTipActive \
    output:CallTipCancel output:CallTipPosStart output:CallTipSetHlt output:CallTipShow output:Cancel output:ChangeLexerState \
    output:CanPaste output:CanRedo output:CanUndo output:CharLeft output:CharLeftExtend output:CharLeftRectExtend \
    output:CharPositionFromPoint output:CharPositionFromPointClose output:CharRight output:CharRightExtend \
    output:CharRightRectExtend output:ChooseCaretX output:Clear output:ClearAll output:ClearAllCmdKeys output:ClearCmdKey \
    output:ClearDocumentStyle output:ClearRegisteredImages output:ClearSelections output:Colourise output:ContractedFoldNext \
    output:ConvertEOLs output:Copy output:CopyAllowLine output:CopyRange output:CopyText output:CreateDocument \
    output:Cut output:DeleteBack output:DeleteBackNotLine output:DescribeKeyWordSets output:DescribeProperty \
    output:DelLineLeft output:DelLineRight output:DelWordLeft output:DelWordRight output:DelWordRightEnd \
    output:DocLineFromVisible output:DocumentEnd output:DocumentEndExtend output:DocumentStart output:DocumentStartExtend \
    output:EditToggleOvertype output:EmptyUndoBuffer output:EncodedFromUTF8 output:EndUndoAction output:EnsureVisible \
    output:EnsureVisibleEnforcePolicy output:FindColumn output:FormatRange output:FormFeed output:GetCurLine \
    output:GetHotspotActiveBack output:GetHotspotActiveFore output:GetLastChild output:GetLexerLanguage output:GetLine \
    output:GetLineSelEndPosition output:GetLineSelStartPosition output:GetProperty output:GetPropertyExpanded \
    output:GetSelText output:GetStyledText output:GetTag output:GetText output:GetTextRange output:GotoLine \
    output:GotoPos output:GrabFocus output:HideLines output:HideSelection output:Home output:HomeDisplay \
    output:HomeDisplayExtend output:HomeExtend output:HomeRectExtend output:HomeWrap output:HomeWrapExtend \
    output:IndicatorAllOnFor output:IndicatorClearRange output:IndicatorEnd output:IndicatorFillRange output:IndicatorStart \
    output:IndicatorValueAt output:InsertText output:LineCopy output:LineCut output:LineDelete output:LineDown \
    output:LineDownExtend output:LineDownRectExtend output:LineDuplicate output:LineEnd output:LineEndDisplay \
    output:LineEndDisplayExtend output:LineEndExtend output:LineEndRectExtend output:LineEndWrap output:LineEndWrapExtend \
    output:LineFromPosition output:LineLength output:LineScroll output:LineScrollDown output:LineScrollUp \
    output:LinesJoin output:LinesSplit output:LineTranspose output:LineUp output:LineUpExtend output:LineUpRectExtend \
    output:LoadLexerLibrary output:LowerCase output:MarginGetStyles output:MarginGetText output:MarginSetStyles \
    output:MarginSetText output:MarginTextClearAll output:MarkerAdd output:MarkerAddSet output:MarkerDefine \
    output:MarkerDefinePixmap output:MarkerDelete output:MarkerDeleteAll output:MarkerDeleteHandle output:MarkerGet \
    output:MarkerLineFromHandle output:MarkerNext output:MarkerPrevious output:MarkerSetAlpha output:MarkerSymbolDefined \
    output:MoveCaretInsideView output:NewLine output:Null output:PageDown output:PageDownExtend output:PageDownRectExtend \
    output:PageUp output:PageUpExtend output:PageUpRectExtend output:ParaDown output:ParaDownExtend output:ParaUp \
    output:ParaUpExtend output:Paste output:PointXFromPosition output:PointYFromPosition output:PositionAfter \
    output:PositionBefore output:PositionFromLine output:PositionFromPoint output:PositionFromPointClose \
    output:PrivateLexerCall output:PropertyNames output:PropertyType output:Redo output:RegisterImage output:ReleaseDocument \
    output:ReplaceSel output:ReplaceTarget output:ReplaceTargetRE output:RotateSelection output:ScrollCaret \
    output:SearchAnchor output:SearchInTarget output:SearchNext output:SearchPrev output:SelectAll output:SelectionDuplicate \
    output:SetCharsDefault output:SetFoldFlags output:SetFoldMarginColour output:SetFoldMarginHiColour output:SetHotspotActiveBack \
    output:SetHotspotActiveFore output:SetLengthForEncode output:SetLexerLanguage output:SetSavePoint output:SetSel \
    output:SetSelBack output:SetSelection output:SetSelFore output:SetStyling output:SetStylingEx output:SetText \
    output:SetVisiblePolicy output:SetWhitespaceBack output:SetWhitespaceFore output:SetXCaretPolicy output:SetYCaretPolicy \
    output:ShowLines output:StartRecord output:StartStyling output:StopRecord output:StutteredPageDown output:StutteredPageDownExtend \
    output:StutteredPageUp output:StutteredPageUpExtend output:StyleClearAll output:StyleGetFont output:StyleResetDefault \
    output:SwapMainAnchorCaret output:Tab output:TargetAsUTF8 output:TargetFromSelection output:TextHeight \
    output:TextWidth output:ToggleCaretSticky output:ToggleFold output:Undo output:UpperCase output:UsePopUp \
    output:UserListShow output:VCHome output:VCHomeExtend output:VCHomeRectExtend output:VCHomeWrap output:VCHomeWrapExtend \
    output:VerticalCentreCaret output:VisibleFromDocLine output:WordEndPosition output:WordLeft output:WordLeftEnd \
    output:WordLeftEndExtend output:WordLeftExtend output:WordPartLeft output:WordPartLeftExtend output:WordPartRight \
    output:WordPartRightExtend output:WordRight output:WordRightEnd output:WordRightEndExtend output:WordRightExtend \
    output:WordStartPosition output:WrapCount output:ZoomIn output:ZoomOut output.AdditionalCaretFore output.AdditionalCaretsBlink \
    output.AdditionalCaretsVisible output.AdditionalSelAlpha output.AdditionalSelBack output.AdditionalSelectionTyping \
    output.AdditionalSelFore output.Anchor output.AnnotationLines output.AnnotationStyle output.AnnotationStyleOffset \
    output.AnnotationVisible output.AutoCAutoHide output.AutoCCancelAtStart output.AutoCChooseSingle output.AutoCDropRestOfWord \
    output.AutoCFillUps output.AutoCIgnoreCase output.AutoCMaxHeight output.AutoCMaxWidth output.AutoCSeparator \
    output.AutoCTypeSeparator output.BackSpaceUnIndents output.BufferedDraw output.CallTipBack output.CallTipFore \
    output.CallTipForeHlt output.CallTipUseStyle output.CaretFore output.CaretLineBack output.CaretLineBackAlpha \
    output.CaretLineVisible output.CaretPeriod output.CaretSticky output.CaretStyle output.CaretWidth output.CharacterPointer \
    output.CharAt output.CodePage output.Column output.ControlCharSymbol output.CurrentPos output.Cursor \
    output.DirectFunction output.DirectPointer output.DocPointer output.EdgeColour output.EdgeColumn output.EdgeMode \
    output.EndAtLastLine output.EndStyled output.EOLMode output.ExtraAscent output.ExtraDescent output.FirstVisibleLine \
    output.Focus output.FoldExpanded output.FoldLevel output.FoldParent output.FontQuality output.HighlightGuide \
    output.HotspotActiveUnderline output.HotspotSingleLine output.HScrollBar output.Indent output.IndentationGuides \
    output.IndicAlpha output.IndicatorCurrent output.IndicatorValue output.IndicFore output.IndicStyle output.IndicUnder \
    output.KeysUnicode output.KeyWords output.LayoutCache output.Length output.Lexer output.LineCount output.LineEndPosition \
    output.LineIndentation output.LineIndentPosition output.LinesOnScreen output.LineState output.LineVisible \
    output.MainSelection output.MarginLeft output.MarginMaskN output.MarginRight output.MarginSensitiveN \
    output.MarginStyle output.MarginStyleOffset output.MarginTypeN output.MarginWidthN output.MarkerFore \
    output.MarkerBack output.MaxLineState output.ModEventMask output.Modify output.MouseDownCaptures output.MouseDwellTime \
    output.MultiPaste output.MultipleSelection output.Overtype output.PasteConvertEndings output.PositionCache \
    output.PrintColourMode output.PrintMagnification output.PrintWrapMode output.Property output.PropertyInt \
    output.ReadOnly output.RectangularSelectionAnchor output.RectangularSelectionAnchorVirtualSpace output.RectangularSelectionCaret \
    output.RectangularSelectionCaretVirtualSpace output.RectangularSelectionModifier output.ScrollWidth output.ScrollWidthTracking \
    output.SearchFlags output.SelAlpha output.SelectionEnd output.SelectionIsRectangle output.SelectionMode \
    output.SelectionNAnchor output.SelectionNAnchorVirtualSpace output.SelectionNCaret output.SelectionNCaretVirtualSpace \
    output.SelectionNEnd output.SelectionNStart output.Selections output.SelectionStart output.SelEOLFilled \
    output.Status output.StyleAt output.StyleBack output.StyleBits output.StyleBitsNeeded output.StyleBold \
    output.StyleCase output.StyleChangeable output.StyleCharacterSet output.StyleEOLFilled output.StyleFont \
    output.StyleFore output.StyleHotSpot output.StyleItalic output.StyleSize output.StyleUnderline output.StyleVisible \
    output.TabIndents output.TabWidth output.TargetEnd output.TargetStart output.TextLength output.TwoPhaseDraw \
    output.UndoCollection output.UsePalette output.UseTabs output.ViewEOL output.ViewWS output.VirtualSpaceOptions \
    output.VScrollBar output.WhitespaceChars output.WhitespaceSize output.WordChars output.WrapIndentMode \
    output.WrapMode output.WrapStartIndent output.WrapVisualFlags output.WrapVisualFlagsLocation output.XOffset
    
    
    # Add all to keyword class 3 (function)
    keywords3.$(file.patterns.lua)=\
    props $(keywords.debug) $(keywords.user) $(keywordclass3.lua5x) $(keywords.scite.lua) $(keywords.editor.lua) $(keywords.output.lua)
    Alles anzeigen

    Öffnet die SciTEUser.properties und dann <Datei><Neu> und speichert die Datei als dark.theme.properties. Jetzt den Inhalt aus dem Spoiler einfügen. (Oder die angehängte Datei unter "C:\Users\U-S-E-R\AppData\Local\AutoIt v3\SciTE\dark.theme.properties" speichern. Endung *.txt nur zum Hochladen)

    In der SciTEUser.properties am Ende eintragen: import dark.theme.

    Zum Verwenden des Lua-Dark-Themes genauso verfahren: Abspeichern im o.g. Pfad und am Ende der SciTEUser.properties eintragen: import dark.theme.lua

    EDIT:

    Ich verlinke hier gleich mal zu Themes anderer User in diesem Thread:

    AutorTheme.properties DownloadVorschau
    Mars dark_theme_marsLink
    Kanashius dark.theme.darculaLink


    Hier mal zum Anschauen:

    Properties-Datei:

    dark.properties.png

    AutoIt - Editorbereich

    dark.editor1.png   dark.editor2.png

    AutoIt - Output

    dark.output.png

    Bei der Farbgebung für den Errormarker (error.marker.fore / error.marker.back) ist zu beachten:

    Das Errorsymbol ist ein hardcodierter Kreis. Der Rand bekommt die Farbe von .fore.

    Mit der Farbe von .back wird die Fläche eingefärbt und ebenfalls die Hintergrundmarkierung für die erste Zeile einer Warnung oder einer Fehleranzeige im Outputbereich. Damit das vernünftig lesbar ist, bleibt hier eigentlich auch nur die dunkle Hintergrundfarbe zu setzen.

    Und noch "dark.theme.lua"

    dark.theme.lua.png

    Dateien

    dark.theme.properties.txt 6,04 kB – 353 Downloads dark.theme.lua.properties.txt 24,22 kB – 320 Downloads
  • SciTE - eigene UDF in Syntaxhighlighting einbinden

    • BugFix
    • 12. Oktober 2023 um 18:36
    Zitat von water

    Hast Du Dir die neue Beta von Jos schon angesehen?

    Ich werds mal ansehen.

  • SciTE - eigene UDF in Syntaxhighlighting einbinden

    • BugFix
    • 12. Oktober 2023 um 15:18

    Ich habe SciTE auf neuem System in der aktuellen Version installiert. Leider funktioniert hier das Syntaxhighlighting eigener UDF nicht.

    Laut Anweisung in SciTE ist so vorzugehen:

    Code
    # Add the below lines to your SciTEUser.properties when you want to add User Abbreviations and UDFS
    #import au3.keywords.user.abbreviations
    #import au3.UserUdfs

    Ich habe also meine UDF in der au3.UserUdfs.properties eingetragen und import au3.UserUdfs in die SciTEUser.properties.

    Aber still ruht der See - es funktioniert nicht.

    Das hat ja auch in der alten Version niemals funktioniert, der einzig mögliche Weg war, die eigenen UDF bei den Standard-UDF mit einzutragen. Ist natürlich immer eklig, weil man als User keinen Schreibzugriff im Programmordner hat.

    Hat irgendjemand eine sinnvolle Lösung hierfür gefunden?

  • Farbspielereien bei der Konsolenausgabe

    • BugFix
    • 11. Oktober 2023 um 13:39

    Ich will mal eine Leiche schänden. :rofl:

    Als ich gerade auf meinem neuen Rechner SciTE in das Dark-Theme gepfriemelt habe ist mir aufgefallen, dass es die 5.te Farbe auch schon default gibt (style.errorlist.13). Dort die Farbe eurer Wahl setzen - fertig.

    ("back" und "eolfilled" sind nur im Dark-Theme nötig)

    .properties
    # OUTPUT PANE uses errorlist colors
    style.errorlist.32=$(font.small),#1D1D1D
    style.errorlist.0=fore:#DCDCCC,back:#1D1D1D,eolfilled
    # diff changed >
    style.errorlist.4=fore:#0000F0,back:#1D1D1D,eolfilled
    # diff changed !
    style.errorlist.10=fore:#FF003F,back:#1D1D1D,eolfilled
    # diff addition +
    style.errorlist.11=fore:#00A800,back:#1D1D1D,eolfilled
    # diff deletion -
    style.errorlist.12=fore:#FFA200,back:#1D1D1D,eolfilled
    # diff message --- and +++
    style.errorlist.13=fore:#FF00FF,back:#1D1D1D,eolfilled
    Alles anzeigen

    Sieht bei mir so aus:

    SciTE_outputColors.png

  • Variable in Array-Namen möglich?

    • BugFix
    • 2. Oktober 2023 um 18:26
    Zitat von kilo

    Ich verstehe unter einem Forum eine Plattform der "Hilfe zur Selbsthilfe" - so agieren wir (nebst eines Minimums an Höflichkeit) zumindest in den 2 Foren, die

    ich adminstriere. Da beantwortet man die Fragen oder versucht es zumindest, mögen sie einem Profi auch noch flach erscheinen. Ich erachte mich nach über
    40 Jahren Berufserfahrung mittlerweile als recht fit in meinem Fachbereich. Trotzdem / genau deswegen würde es mir nicht im Traum einfallen, jemandem zu
    erklären, dass ich effektivere, übersichtlichere und sicherere Programme schreiben kann als sie/er, dass wissen die Fragenden, sonst würde sie/er nicht fragen!

    Du wirst hier im Forum selten erleben, dass ich die Contenance verliere. Aber wenn ich deine Einlassungen hier lese, bin ich kurz davor.

    Dir wäre also geholfen gewesen, wenn als erste Antwort auf deine Frage die Funktion Eval benannt worden wäre - ohne weiteren Kontext. Denn das verlangst du ja stur: Ich frage - ihr Forumvolk habt zu antworten.

    Keine Ahnung, was in deinen administrierten Foren so abgeht. Hier geht es uns um Hilfe zur Selbsthilfe. Und in 7 von 10 Fällen ist einfach das XY-Problem gegeben. Wenn du unsere Erfahrungen ignorieren willst: WARUM FRAGST DU???

  • ADR.COM

    • BugFix
    • 26. September 2023 um 18:20

    Da wirst du wohl einen DOS-Emulator für dein Adressprogramm brauchen (z.B. https://www.dosbox.com/). Oder du installierst eine VM mit Win98.

  • AutoIt-SQLite to HTML

    • BugFix
    • 26. September 2023 um 10:48
    Zitat von Velted

    Dann hätte Deine Frage doch lauten sollen:

    Wie konvertiere ich die Tabellen einer mit AutoIt erstellten SQLite-Datenbank nach HTML?

    Die richtige Fragestellung - ein leidiges Problem. :whistling:

    @PSblnkd Ich empfehle mal, auch den Titel deines Threads dahingehend zu ändern. (SQLite-DB to HTML HowTo o.ä.)

  • Markierung Aktuelles Tab-Item in SciTE: Flickern unter Win11

    • BugFix
    • 25. September 2023 um 14:00

    Ich habe ja das Skript zur Markierung von Tab-Item in SciTE erstellt.

    Beitrag

    SciTE - Farbig hervorheben: Aktuelles Tab Item

    • Hervorheben des aktiven Tab-Item in SciTE
    • Individuell:
      • Rahmenfarbe
      • Textfarbe
      • Hintergrundfarbe
      • Textfarbe bei nicht gespeichert
      • [NEU v0.3] Markierung "Inaktives Item ungespeichert"
      • [NEU v0.4] Markierung "Inaktives Item ungespeichert" wahlweise 'top' / 'bottom' / 'none'
      • [NEU v0.4] Markierung Aktives Item kann deaktiviert werden (falls nur Markierung ungespeichert gewollt)
        Das aktive Item erhält dann bei "ungespeichert" dieselbe Markierung, wie inaktive Item.
    • Farben als Scheme über INI ladbar
    • [NEU v0.4] Das
    …
    BugFix
    15. März 2023 um 20:44

    Jetzt nutze ich das auch unter Win 11. Bisher unter Win 7 lief das tadellos. Unter Win 11 funktioniert es auch - aber es flickert, nicht sehr störend - aber merkbar.

    Könnt ihr das nachvollziehen - und habt ggf. eine Idee zur Lösung?

  • AutoIt-SQLite to HTML

    • BugFix
    • 25. September 2023 um 12:53
    Zitat von PSblnkd

    Wenn das dbf-Ausgabeformat wirklich eine DBase-Datenbank ist,

    Ich habe mal aus meinem Uralt-Programm die erforderlichen Parts zum dBase-Datei lesen zusammengefasst. Kannst ja mal damit testen. Die DBF wird hier in ein Array eingelesen.

    AutoIt
    ;-- TIME_STAMP   2023-09-25 12:49:21
    
    #include <Array.au3>
    #include <GUIConstantsEx.au3>
    #include <WinAPIHObj.au3>
    #include <WinAPIInternals.au3>
    
    ;===================================================================================================
    $DBF = "C:\PATH\ZU_DEINER.DBF"
    ;===================================================================================================
    
    Global Const $tagField = "char name[11];" & _          ;  0-10   |  11 bytes         | field name
            "char type;" & _                            ;  11     |  1 byte           | field type in ASCII
            "uint memadress;" & _                        ;  12-15  |  32 bit number    | field data address
            "byte len;" & _                                ;  16     |  1 byte           | field length
            "byte deccount;" & _                        ;  17     |  1 byte           | field decimal count
            "byte reserved[14];"                         ;  18-31  |  14 bytes         | reserved bytes
    Global Const $tagFileHeader = "byte ver;" & _       ;  0      |  1 byte           | dBASE III version number
            "byte date[3];" & _                            ;  1-3    |  3 bytes          | date of last update
            "uint reccount;" & _                        ;  4-7    |  32 bit number    | number of records in data file
            "ushort headerlength;" & _                    ;  8-9    |  16 bit number    | length of header structure
            "ushort reclength;" & _                        ;  10-11  |  16 bit number    | length of the record
            "byte reserved[20];"                         ;  12-31  |  20 bytes         | reserved bytes
    ;~                             $tagField & _           ;  32-n   |  32 bytes each    | field descriptor array
    ;~                             "byte terminate;"       ;  n+1    |  1 byte           | 0DH as the field terminator
    Global $Header = DllStructCreate($tagFileHeader)
    Global $DatabaseArray[1][2]
    Global $databaseFieldInfos[1][5]
    
    _ReadDBF($DBF)
    
    _ArrayDisplay($databaseFieldInfos)
    _ArrayDisplay($DatabaseArray)
    
    
    Func _ReadDBF($inPathDBF)
        Local $DBFFile = _WinAPI_CreateFile($inPathDBF, 2, 2, 2)
        Local $ReadChars
        If _WinAPI_ReadFile($DBFFile, DllStructGetPtr($Header), DllStructGetSize($Header), $ReadChars) Then
            If DllStructGetData($Header, "ver") <> 3 Then ; Version muss
                MsgBox(16, 'Error', "No supportet dbase format (only dbase 3 without .DBT-files)")
                _WinAPI_CloseHandle($DBFFile)
                Exit
            EndIf
            ; $tagField erstellen
            Local $FieldDescriptor = DllStructCreate($tagField)
            ; Infos aus Header auslesen
            Local $HeaderLength = DllStructGetData($Header, "headerlength")
            Local $FieldsCount = Floor(($HeaderLength - DllStructGetSize($Header) - 1) / DllStructGetSize($FieldDescriptor))
            Local $RecordLength = DllStructGetData($Header, "reclength")
            Local $RecordsCount = DllStructGetData($Header, "reccount")
            ; Zahl der Felder: (Headergröße- Dateiheadergröße- terminator-byte) / Feldbeschreibungs-größe
            If $FieldsCount = 0 Then
                MsgBox(16, '', "No fields")
            Else
    ;~             Global $DatabaseArray[$RecordsCount + 1][$FieldsCount]
    ;~             Global $databaseFieldInfos[$FieldsCount][5]
                ReDim $DatabaseArray[$RecordsCount + 1][$FieldsCount]
                ReDim $databaseFieldInfos[$FieldsCount][5]
                For $i = 1 To $FieldsCount
                    _WinAPI_ReadFile($DBFFile, DllStructGetPtr($FieldDescriptor), DllStructGetSize($FieldDescriptor), $ReadChars)
                    $DatabaseArray[0][$i - 1] = DllStructGetData($FieldDescriptor, "name")
                    For $s = 0 To 4
                        $databaseFieldInfos[$i - 1][$s] = DllStructGetData($FieldDescriptor, $s + 1)
                    Next
                Next
                Local $CHECKREAD = DllStructCreate("byte terminate")
                _WinAPI_ReadFile($DBFFile, DllStructGetPtr($CHECKREAD), 1, $ReadChars)
                If DllStructGetData($CHECKREAD, 1) == 0x0D Then
                    Local $RecordStruct = _CreateRecordStruct($databaseFieldInfos)
                    For $i = 1 To $RecordsCount
                        _WinAPI_ReadFile($DBFFile, DllStructGetPtr($RecordStruct), DllStructGetSize($RecordStruct), $ReadChars)
                        If $ReadChars = 0 Then
                            ; keine Felder mehr (Fehler)
                            ReDim $DatabaseArray[$i][$FieldsCount]
                            ExitLoop
                        EndIf
                        For $j = 1 To $FieldsCount
                            $DatabaseArray[$i][$j - 1] = DllStructGetData($RecordStruct, "field" & $j)
                            #Region Datentypen konvertieren
                            Switch $databaseFieldInfos[$j - 1][1]
                                Case "C" ; characters: nothing
                                    $DatabaseArray[$i][$j - 1] = OemToChar($DatabaseArray[$i][$j - 1])
                                Case "N" ; numeric
                                    If StringInStr($DatabaseArray[$i][$j - 1], '.') Then
                                        $DatabaseArray[$i][$j - 1] = StringTrimRight(StringStripWS(StringReplace($DatabaseArray[$i][$j - 1], '.', ','), 1), 2)
                                    Else
                                        $DatabaseArray[$i][$j - 1] = Number($DatabaseArray[$i][$j - 1])
                                    EndIf
                                Case "L"
                                    Switch $DatabaseArray[$i][$j - 1]
                                        Case "?"
                                            $DatabaseArray[$i][$j - 1] = "N/A"
                                        Case 'Y', 'y', 'T', 't'
                                            $DatabaseArray[$i][$j - 1] = True
                                        Case 'N', 'n', 'F', 'f'
                                            $DatabaseArray[$i][$j - 1] = False
                                    EndSwitch
                                Case "D"
                                    $DatabaseArray[$i][$j - 1] = StringRegExpReplace($DatabaseArray[$i][$j - 1], "\A(\d{4})(\d\d)(\d\d)\Z", "$1/$2/$3")
                                Case "M" ; not supportet
                            EndSwitch
                            #EndRegion Datentypen konvertieren
                        Next
                        Sleep(10)
                    Next
                Else
                    MsgBox(0, 'Error', "Wrong fielddescript_or_table")
                EndIf
            EndIf
            _WinAPI_CloseHandle($DBFFile)
        EndIf
        ; Spalten infos hizufügen zu Feld-Info array
        ReDim $databaseFieldInfos[UBound($databaseFieldInfos)+1][5]
        $databaseFieldInfos[UBound($databaseFieldInfos)-1][0] = "[[ NAME ]]"
        $databaseFieldInfos[UBound($databaseFieldInfos)-1][1] = "[[ TYP ]]"
        $databaseFieldInfos[UBound($databaseFieldInfos)-1][2] = "[[ ADRESSE ??? ]]"
        $databaseFieldInfos[UBound($databaseFieldInfos)-1][3] = "[[ Byte-Länge ]]"
        $databaseFieldInfos[UBound($databaseFieldInfos)-1][4] = "[[ Dezimalstellen ]]"
    EndFunc
    
    Func _CreateRecordStruct(ByRef $databaseFieldInfos)
        Local $sText = "char deleted;"
        For $i = 1 To UBound($databaseFieldInfos)
            $sText &= "char field" & $i & "[" & $databaseFieldInfos[$i - 1][3] & "];"
        Next
        Return DllStructCreate($sText)
    EndFunc   ;==>_CreateRecordStruct
    
    ;===============================================================================
    ; Name:             OemToChar
    ; Description:      Wandelt einen ASCII- in einen ANSI-String
    ; Parameter(s):     $szSrc = String der umgewandelt werden soll
    ; Requirement(s):   keine
    ; Return Value(s):  bei Erfolg: umgewandelter String
    ;                   bei Fehler: "" und @error = 1
    ; Author(s):        bernd670
    ;===============================================================================
    Func OemToChar($szSrc)
        Local $placeholder
        For $i = 0 To StringLen($szSrc)
            $placeholder &= "  "
        Next
        Local $lRetVal = DllCall("user32.dll", "long", "OemToChar", "str", $szSrc, "str",$placeholder)
        If IsArray($lRetVal) And $lRetVal[0] = 1 Then
            Return SetError(0,0,$lRetVal[2])
        EndIf
        Return SetError(1,0,"")
    EndFunc   ;==>OemToChar
    Alles anzeigen
  • Stirbt Autoit?

    • BugFix
    • 25. September 2023 um 12:19

    Ich habe das Riesenglück, dass unsere Arbeitsplatzrechner nicht ans Internet angeschlossen sind und somit mögliche Sicherheitslücken in der Software so interessant sind, wie der bekannte Sack Reis in China.

    Aus diesem Grund läuft auch immer noch absolut zuverlässig unser Warenwirtschaftssystem mit einem Softwarestand von 2002. :thumbup:

    Der Softwarelieferant wollte uns schon mehrfach so supertolle Updates überbügeln. Da haben wir dankend abgelehnt. Die Updates hätten u.A. zu einer kompletten Änderung unserer Arbeitsabläufe führen müssen. Ich hatte die Software soweit aufgebohrt (mit AutoIt) und an unsere Bedürfnisse angepasst, dass sie genau in unsere Abläufe passt. Andersrum ist schwachsinnig.

    Wie man sieht sind 20 Jahre ohne Änderung kein Anzeichen für etwas Schlechtes. Im Kern sollte es immer darum gehen: Bringt eine Veränderung allen/vielen Anwendern einen echten Mehrwert. (Optischer Schnickschnack zählt m.M. nicht dazu)

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™