Beiträge von Musashi

    ... und wo findet man nun solche essentiellen Erkenntnisse wie, dass FileOpen nur Readonly liest?

    FileOpen ließt nicht nur Read-Only. Das ist lediglich der Standardmodus, falls kein anderer [optionaler Parameter] Mode nach dem Dateinamen angegeben wird.


    siehe Hilfe : FileOpen

    Danke an Musashi für seinen Beitrag v. 06.11.2017 mit dem Titel: "regexreplace".

    (der Vollständigkeit halber)

    In dem Thread regexreplace , aus dem Du mein Beispiel entnommen hast, ging es primär um einen Vergleich der Verarbeitungsgeschwindigkeit von StringReplace  und StringRegExpReplace.

    Dort habe ich exemplarisch wie folgt substituiert :

    [['Ä', '1'], ['Ö', '2'], ['Ü', '3'], ['ä', '4'], ['ö', '5'], ['ü', '6'], ['ß', '7']]

    bzw.

    [['Ä', 'Ae'], ['Ö', 'Oe'], ['Ü', 'Ue'], ['ä', 'ae'], ['ö', 'oe'], ['ü', 'ue'], ['ß', 'ss']]


    Dein Array [[10, 'A'], [11, 'B'], [12, 'C'], [13, 'D'], [14, 'E'], [15, 'F']] lässt allerdings vermuten, dass Du von Dezimal zu Hex umwandeln möchtest. Dabei könnte der von Oscar beschriebene Fehlerteufel zuschlagen.


    EDIT : gerade gelesen :

    Es dient rein dem Zweck, einen String aus X Ziffern "unverständlicher" zu machen. Ja, es soll nach "hex" aussehen, aber es ist wirklich nur dafür da, etwas noch mehr zu "verstecken".

    Ich würde es nicht zu sehr verkomplizieren ;) .

    Ich weiß aber hier scheint noch viel Unwissenheit zu herrschen beim TE (nicht böse gemeint), daher sollte man alles klar definieren um zu Wissen was/wie läuft.

    Deswegen empfehle ich ja auch die Verwendung von #AutoIt3Wrapper_Au3Check_Parameters=-q -d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 -w 7 bzw. Opt('MustDeclareVars', 1)

    Ich wäre auch überrascht gewesen, wenn Du das nicht gewusst hättest ^^ .


    casi4712 : Die von Moombas vorgeschlagenen Prüfungen kann auch ich nur empfehlen.

    Sie sind, insbesondere die Variante #AutoIt3Wrapper_Au3Check_Parameters= ... , zwar etwas 'nervig', zeigen aber Schwachstellen im Code auf.

    Du deklarierst hier Variablen immer noch falsch:

    Code
    ;Zeile 27/28:
    Local $sHost= "localhost" ;Außerhalb einer Funktion deklariert, also muss hier Global stehen!
    Local $Gateway, $nMsg     ;Außerhalb einer Funktion deklariert, also muss hier Global stehen!

    Meines Wissens ist eine, außerhalb einer Funktion, deklarierte Variable immer global, auch wenn sie mit Local deklariert wurde. Die Verwendung von Global  ist aber 'transparenter' :) .

    Nur am Rande : Auf Dim zur Variablendeklaration sollte man lt. Hilfe ja eh verzichten.

    Aber grundsätzlich, wie meinst du das AdlibRegister kann nicht mit Parameter eine Funktion ansteuern, ich habe es so gemacht, wie ich es schon einige Male erfolgreich praktiziert habe, nämlich so: AdlibRegister('_ActiveIP', 50), da habe ich doch keinen Parameter übergeben ?

    Natürlich kann man der Funktion AdlibRegister Parameter übergeben.

    function - Der Name der Adlib-Funktion, die registriert werden soll.

    time [optional] - Wie häufig die Funktion in Millisekunden aufgerufen werden soll. Standard ist 250 ms.


    Was Schnuffel Dir mitteilen wollte, und was auch in der Hilfe steht ist :

    "Es können keine Funktionen registriert werden die Parameter enthalten."


    Vor meiner Neuinstallation konnte ich noch mit einer Funktionstaste, ich glaube es war F6, unten in Scite4Autoit die Konsolenausgabe einblenden. Leider funktioniert das nach der letzten Neuinstallation nicht, muss ich das noch irgendwo einstellen?

    Du meinst wahrscheinlich die Taste F8 .

    Klicke mal auf den Toplevel.Menüpunkt View und aktiviere die Einstellung Output.

    PSblnkd :
    Ich habe mir dein Impressum auch mal angesehen.

    Bis auf den von BugFix bereits genannten Punkt, also dem Kontaktformular, sehe auch ich keine weiteren Probleme. Da Du weder gewerblich auftrittst noch kommerzielle Interessen vorhanden sind, entfallen diverse Pflichtangaben.


    Häufig kann das Zusammenklicken von Textbausteinen mit 'zig Paragraphen sogar nach hinten losgehen.


    (Hinweis : Das ist meine private Meinung und natürlich keine Rechtsberatung ;) )

    Deine Lösung aus #5 arbeitet doch einwandfrei.

    Ja, das Pattern "\w{6}\K" von AspirinJunkie arbeitet tadellos, gemäß deiner Anforderung :

    $_eingang = "ab5sfd6389ewuifhefz9f8z49r3reijouw844t04ut5zu4zz4ß49tu"

    So soll die Ausgabe aussehen :
    $_ausgabe ="ab5sfd|6389ew|uifhef|z9f8z4|9r3rei|jouw84|4t04ut|5zu4zz|4ß49tu"

    Solange man also keine Zeichen außerhalb der durch :

    \w = findet alle Wörterzeichen: a-z, A-Z ,0-9 oder Unterstrich (_)

    festgelegten Menge verwendet, ist alles ok. Das ist bei Dir ja offenbar so, siehe :

    Im $Input stehen in diesem meinem Fall IMMER nur eine Zahl mit x-Ziffern.

    Ich wollte nur ergänzen, dass bei Zeichen, die nicht von \w gefunden werden, die Trennung in 6-er Blöcke fehlschlägt. Daher mein Vorschlag mit dem Pattern ".{6}\K".


    Könntest Du mal ein abgespecktes aber lauffähiges Skript posten, welches eine von Dir verwendete "Zahl" mit x-Ziffern enthält?

    Gruß Musashi

    DANKE ! Ja, das Script macht jetzt das Einsetzen des Trennzeichen.

    Hi Alina !

    Ich möchte mich korrigieren :) .

    Es liegt nicht daran, dass der Variablen $Input zwingend ein String zugewiesen werden muss - z.B. wäre eine Fließkommazahl auch möglich.


    Das Problem liegt an \w im Suchmuster (Pattern).

    Auszug aus der Hilfe :

    \w = findet alle Wörterzeichen: a-z, A-Z ,0-9 oder Unterstrich (_)


    Sobald ein ., aber auch andere Zeichen wie z.B. :, ;, * in $Input vorkommen, erfolgt das Einsetzen des Trennzeichen nicht mehr wie gewünscht.


    Ich habe als Suchmuster mal ".{6}\K" angegeben. Damit scheint es korrekt zu funktionieren.

    Ein Quick&Dirty Skript zur Anschauung :

    Das mag er nicht: $input2 = StringRegExpReplace($input2, "\w{6}\K", "|") WARUM NICHT ?!?

    Sollte aber funktionieren.

    AutoIt
    Local $Input2 = "ab5sfd6389ewuifhefz9f8z49r3reijouw844t04ut5zu4zz4ß49tu"
    ConsoleWrite("Vorher  : " & $Input2 & @CRLF)
    ConsoleWrite("VarType : " & VarGetType($Input2) & @CRLF)
    $Input2 = StringRegExpReplace($Input2, "\w{6}\K", "|")
    ConsoleWrite("Nachher : " & $Input2 & @CRLF)

    Ausgabe in SciTE :

    Vorher : ab5sfd6389ewuifhefz9f8z49r3reijouw844t04ut5zu4zz4ß49tu

    VarType : String

    Nachher : ab5sfd|6389ew|uifhef|z9f8z4|9r3rei|jouw84|4t04ut|5zu4zz|4ß49tu


    Ist $Input2 denn mit einem String besetzt ?

    Soweit ich weiß ist es laut Gesetz verpflichtend, dass der Nutzer zustimmt BEVOR die Cookies benutzt werden dürfen.

    Richtig, siehe z.B. : hinweispflicht-fuer-cookies

    Auszug :

    Der Nutzer muss detailliert über die Dienste informiert werden, die Cookies setzen und Daten übertragen.

    Er muss ausdrücklich bestätigen, dass er zustimmt.

    Und ganz wichtig: Vor der Zustimmung des Nutzers dürfen noch keine Daten übertragen werden.

    BugFix :

    Ich stimme völlig mit Dir überein. Der eigentliche Hintergrund, also der Schutz der Anwender, wird zu einem Datamining-Verfahren umgestaltet.


    Das erinnert mich irgendwie an die feuchten Träume einiger Kreise bzgl. Überwachung der Bürger (f,m,d).

    Auch hier geht es scheinbar nur darum, z.B. "pöse" Terroristen zu fangen (wer mag da widersprechen).

    Am Ende haben wir dann Zustände wie in C*H*I*N*A <X .

    ... ALLE Cookies sind aktiviert - Standard-Button ist "Erlauben"

    Laut Gesetz muss der Anwender AKTIV zustimmen. Zustimmung als Vorbesetzung wäre unzulässig.

    Das bedeutet natürlich nicht, dass es trotzdem so gemacht wird :rolleyes: .

    HGF : zur Anschauung ein Q&D Beispiel :

    Bei der Sortierung kommt es z.B. darauf an, ob das Array numerische Werte enthält oder ob die "Zahlen" als Strings vorliegen.

    Bei numerischen Werten liefert _ArraySort das gewünschte Ergebnis.


    Bei Strings wird aber zeichenweise sortiert, d.h. 1056.20 steht vor 354.99, da das erste Zeichen 1 kleiner ist, als die 3.


    Poste bitte mal eine vollständige Textdatei.

    Frage : Kann es sein, dass AutoIt mit dem hohen Ergebnis über seine Grenze kommt?

    Soweit ich das sehe, ja !


    (1310 ^ 99) erzeugt bereits den Fehlercode 1.#INF

    Daher liefert das anschließende Mod  wohl auch -1.#IND obwohl der Divisor > 0 ist.

    Aus der Hilfe zur Funktion Mod :

    Rückgabewert

    Erfolg: der Rest der Division von value1 geteilt durch value2.

    Fehler: "-1.#IND", falls der Divisor 0 ist.


    Irgendwie sollte das doch mit Autoit zu machen sein.

    Ich würde es mal mit der BigNum-UDF versuchen, siehe Anhang :

    Damit sieht es wie folgt aus (sofern ich bei deinen Variablennamen keine Fehler gemacht habe ;) ) :