Beiträge von BugFix

    Warum so eine alte Version? Hat das Vorteile? :/

    JA.

    Wenn man externe Bibliotheken in Lua-Skripten einbinden möchte bedarf das des Befehls require. In neueren SciTE-Versionen funktioniert das nicht mehr (Details s. hier)

    Deshalb:

    - neueste SciTE4AutoIt-Version installieren (damit geänderte Funktionen etc. bekannt gemacht werden)

    - in der Installation die scite.exe gegen eine alte Version austauschen. (3.6.6 funktioniert definitiv, evtl. auch noch die Folgeversion, habe ich aber nicht probiert)

    Die Versionsnummern der Installation kann man leider nicht direkt mit denen des Setups vergleichen, da in der Installation eine andere Version gezeigt wird als im Namen der Installationsdatei.

    Ich verwende z.B. SciTE v3.6.6 (Installationsdatei: v16.612.1119.0-SciTE4AutoIt3). Eine Ähnlichkeit ist über das Datum möglich. (Oder aber herunterladen, SciTE.exe <Eigenschaften-Version>)


    Du kannst ja mal eine ältere Version installieren und Prüfen ob es dann funktioniert.

    Statt mehrere Dokumente in 1 Editor-Fenster mit mehreren Tabs zu laden, mag ich es lieber, wenn man pro Dokument 1 Editor-Fenster hat. Ich will NICHT ein und das selbe Dokument nochmal öffnen, weder in Einzel-Fenster, noch in Tabs.

    • Anzahl SciTE Instanzen abfragen
    • für jede Instanz: Iteriere durch die Tabs und vergleiche den aktiven Dateinamen mit dem zu öffnenden Dateinamen
    • findest du ihn: aktiviere den Tab
    • findest du ihn nicht: öffne neu

    Die erforderlichen Funktionen zur Abfrage findest du in diversen Beiträgen.

    Andererseits hätte ich genau diese Möglichkeit gerne: 2 Fenster mit derselben Datei um unterschiedliche Bereich der Datei nebeneinander darstellen zu können z.B. für Vergleiche des Codes.

    Eine erste Version dazu hatte ich bereits 2008 erstellt (https://www.autoitscript.com/f…nstance-with-same-script/).

    Die folgende Version berücksichtigt auch, dass die Taskbar unterschiedlich positioniert sein kann:

    Ist das Bulk-Rename von Variablen (siehe hier) mittlerweile integriert worden?

    Nein, hatte ich noch nicht wieder auf der Agenda.


    Mit check.if.already.open=0 in z. B. SciteUser.properties kann man SciTE veranlassen, Dokumente in mehreren SciTE-Instanzen (Fenster) zu laden, statt in mehreren Tabs. Leider verhindert SciTE dann nicht mehr, dass ein und das selbe Dokument mehrfach geöffnet wird. Wie kann man beides erreichen?

    Das Problem hatte ich noch nie. Eine zweite Instanz öffnen hat für mich nur dann Sinn, wenn ich ein bereits geöffnetes Skript parallel in anderen Abschnitten betrachten möchte. Somit ist es zwingend erforderlich, dass das selbe Dokument geöffnet werden kann.

    Anderes Einsatzgebiet einer anderen Instanz habe ich noch nicht gefunden. - Wozu brauchst du das?


    Z. B. wie kriegt man pink, oder grau? Und wie das Springen in die angegebene Zeile, wenn man doppelklickt?

    s. hier: Farbspielereien bei der Konsolenausgabe

    Nach vielem Probieren: GROUP BY war des Pudels Kern.

    Hier die gesamte Lösung:

    Hi,

    ich möchte Routinen erstellen um (gemäß DSGVO) Datensätze, die die Aufbewahrungsfrist überschritten haben zu löschen/anonymisieren.

    Die längsten Fristen gelten für Rechnungen (10 Jahre), d.h. alle zugehörigen Kundendaten müssen ebenso lange aufbewahrt werden. Ist die letzte Kundenaktivität (Verkaufsrechnung) länger als 10 Jahre her, müssen alle Kundendaten gelöscht oder anonymisiert werden.

    Soweit, so sinnlos aufwändig. <X

    Mein Lösungsansatz war folgender:

    - alle Kundennummern mit Status "nicht mehr aktiv" abfragen

    - in der Belegtabelle die jüngste Verkaufsrechnung ( MAX(Belegnr) ) für jede dieser Kundennummern ermitteln

    - feststellen, ob Differenz größer als 119 Monate (min. 120 Monate, also 10 Jahre)

    - JA - Adressnummer ausgeben

    - NEIN - 0 ausgeben

    - mit den Adressnummern dann die erforderlichen UPDATE-Statements durchführen


    Für eine vorhandene Rechnungsnummer klappt die Ermittlung gut:

    Mein Problem ist aber, für die Liste der inaktiven Kunden die jeweils jüngste Rechnungsnummer abzufragen, da ich dafür MAX() benutze und diese Funktion ja nur einen Wert zurückliefert. Hier brauchte ich eine Möglichkeit in einer Schleife oder ähnlich zu arbeiten. Ich bin nicht so superfit mit SQL und kenne nicht alle Tricks, vielleicht kann mir jemand einen Tipp geben.

    Der Vollständigkeit halber, die Ermittlung der inaktiven Kunden und die MAX-Beleg Ermittlung:

    MyScriptA.aus soll dann ebenfalls in einer Schleife MyDB.au3 erneut aufgerufen werden

    Das ist quatsch.

    Mittels #include 'MyDB.au3' ist die Datei doch bereits eingebunden. Sie wird nicht ausgeführt, sondern die darin enthaltenen Funktionen und Konstanten stehen in deinem Hauptskript zur Verfügung.

    Also kannst du in jedem Skript, indem du die Funktionalität benötigst, deine Datei mit den Funktionen einbinden.

    $sqlCon ist ein Objekt, das kannst du nicht mit ConsoleWrite ausgeben. Du kannst aber prüfen, ob es existiert: If IsObj($sqlCon) Then ConsoleWrite('OK')

    Auf die Inhalte des Objektes musst du mit den Funktionen der <MSSQL.au3> zugreifen, die das Objekt (Datenbank-Handle) als Parameter erwarten.

    Das sind ca. 5 Zeilen Code, die schreibt man bei Bedarf mal schnell. Ich hatte alte Skripte auf diese Weise aktualisiert, als Änderungen mit SQLite auftraten und auch bei Änderungen mit Script-Breaking-Chance in eigenen UDF handhabe ich das so. Wie gesagt, sind nur ein paar Zeilen Code, die du in einer Minute geschrieben hast. - Also ran (oder die von Andy empfohlenen Vorgehensweise, Fehler finden - in SciTE: Suchen & Ersetzen - fertig.).

    So wie ich es verstehe, möchte shakoon das Subpattern für die jeweilige Nummer erzeugen, also für :

    2.5000.0019 ==> 2\.5000\.0019

    Echt?

    Sorry, aber so tief unten habe ich nicht angesetzt beim Denken. :P Selbst wenn man mit RegEx wenig am Hut hat, sollte man zumindest ein wenig Initiative aufbringen um festzustellen, wie das bestehende Pattern die gewünschte Zahlenkombination ausfiltert. Und man braucht keine besonderen Fähigkeiten um zu erkennen, dass dort die Zahlenkombination ergänzt um Backslash vor jedem Punkt verwendet wird. Das sieht man sofort. :/

    Gibt es ein Skript, welches ältere Skripte automatisch auf Zeilen überprüft, die bei Verwendung der aktuellen AutoIt Version entfernt oder umbenannt werden müssen?

    Kannst du auch schnell selbst schreiben:

    - Verzeichnis mit *.au3 in Array lesen

    - für jede Datei:

    -- Datei lesen - Stringreplace(Variblaname_alt, Variablename_neu) - Datei überschreiben und schliessen

    Du möchtest jetzt also alle zweiten Felder ohne Filterung.

    So gehts am Einfachsten (kannst du auf eine Einzelzeile oder die gesamte Datei anwenden):

    Python
    1. ; $sRead enthält deine Textzeile oder die gesamte Datei
    2. Local $sRepl = StringRegExpReplace($sRead, '\d+;([^;]+).+', '\1')
    3. ConsoleWrite($sRepl & @CRLF)

    SciTE in Mehrbenutzerinstallation ohne Adminrechte


    SciTE/AutoIt wurde von Admin (oder anderem User mit Adminrechten) installiert. Selbst hat man keine Adminrechte. Somit ist keine normale Funktionalität gewährleistet.


    Lösung:


    C:\Users\InstallationsUser\AppData\Local\AutoIt v3\SciTE

    nach

    C:\Users\NormalerUser\AppData\Local\AutoIt v3\SciTE

    kopieren und

    Umgebungsvariable SCITE_USERHOME

    auf dieses Verzeichnis setzen.

    Wie kann ich den Hintergrund beim Ausdruck aus SciTE anpassen?


    Das wird geregelt mit print.colour.mode

    Einfügen in die SciTEUser.properties mit dem gewünschten Modus:

    Zitat von Hilfe zu SciTE


    Einige Leute bevorzugen hellen Text auf einem schwarzen Hintergrund auf dem Bildschirm, aber dunklen Text auf Weiß auf Papier. Wenn print.colour.mode auf 1 gesetzt ist, wird jede Farbe zum Drucken invertiert. Bei der Einstellung 2 wird beim Drucken schwarzer Text auf weißem Hintergrund ausgegeben. 3 setzt den Hintergrund auf Weiß und 4 setzt den Standardhintergrund auf Weiß.

    De Rand Ere

    Sämtliche properties Einstellungen, die man personifiziert, gehören in die SciTEUser.properties. Das Warum hat ja water schon erklärt. In der Rangordnung der Property Dateien geniessen die SciTEUser.properties eine höhere Priorität und überschreiben somit die Einstellungen Globaler Properties,