Beiträge von Musashi

    Nachtrag :

    Du solltest, wie schon erwähnt, versuchen, die JSON Variante von AspirinJunkie umzusetzen.


    Hier ein erweiterter RegEx Ansatz :

    Dabei wird im Aufruf von StringRegExp das Flag 4 verwendet (Rückgabe : Array of Arrays).

    AspirinJunkie hat im EN-Forum eine Funktion veröffentlicht, die daraus ein 2-D Array erstellt.


    Das Pattern selbst ist sicherlich noch optimierbar :D .

    RegEx ist, wie AspirinJunkie bereits schrieb, nicht die erste Wahl.


    Ich habe trotzdem mal zwei Pattern zusammengestümpert - mehr fällt mir um diese Zeit nicht mehr ein ^^

    Die beiden Arrays kannst Du bei Bedarf joinen.


    AutoIt
     #include <Array.au3>
    
    Local $sSource = '{"summary":{"query":"wilnsdorf hohe roth 6","queryType":"NON_NEAR","queryTime":149,"numResults":1,"offset":0,"totalResults":7314,"fuzzyLevel":2},"results":[{"type":"Point Address","id":"DE/PAD/p0/21286756","score":7.0448002815,"matchConfidence":{"score":0.9350328916967534},"address":{"streetNumber":"6","streetName":"Hoheroth","municipality":"Wilnsdorf","countrySecondarySubdivision":"Siegen-Wittgenstein","countrySubdivision":"Nordrhein-Westfalen","postalCode":"57234","countryCode":"DE","country":"Deutschland","countryCodeISO3":"DEU","freeformAddress":"Hoheroth 6, 57234 Wilnsdorf","localName":"Wilnsdorf"},"position":{"lat":50.82027,"lon":8.11352},"viewport":{"topLeftPoint":{"lat":50.82117,"lon":8.1121},"btmRightPoint":{"lat":50.81937,"lon":8.11494}},"entryPoints":[{"type":"main","position":{"lat":50.82024,"lon":8.11361}}]}]}'
    
    Local $aArrayLat = StringRegExp($sSource, "(?U)position.*lat.*(\d+.\d+),", 3)
    Local $aArrayLon = StringRegExp($sSource, "(?U)position.*lon.*(\d+.\d+)\}", 3)
    _ArrayDisplay($aArrayLat, "Latitude :")
    _ArrayDisplay($aArrayLon, "Longitude :")



    P.S. Oscar oder BugFix

    Könnte einer das Thema aus dem Testforum nach H&U verschieben. Ist ggf. ja von allgemeinem Interesse.

    Dumme Frage, aber hast Du auch die json-udf eingebunden ?

    "C:\Users\xx2\Desktop\Regex test.au3" (36) : ==> Unknown function name.:$oResult = _JSON_Parse($sJSONReturn)$oResult = ^ ERROR


    Unknown function name lässt vermuten, dass das nicht der Fall ist.


    Bitte auch folgendes beachten :

    Zitat
    2022/10/19
    • Script-Breaking!: _JSON_Parse generiert für JSON-Objekte nun AutoIt-Maps anstatt Scripting.Dictionary-Objekte. Die letzte Version mit Dictionary liegt im Anhang als JSON_Dictionary.au3.
    • __JSON_FormatString(): @Tab wird nun durch \t escaped. (thx mko)

    Ich brauch davon Row 4 und 5

    Beispiel mit dein Originalarray aus Beitrag 3 :

    Mir geht es so wie Andy - das Array ist doch bereits vorhanden:)


    Wenn Du die Werte aus Row 4 und 5 benötigst, dann kannst Du sie doch einfach ansprechen/ausgeben. Hast Du möglicherweise noch Verständnisprobleme mit Arrays im allgemeinen ?


    Mit z.B. _ArrayDelete lassen sich Elemente aus einem Array entfernen, aber das ist überhaupt nicht erforderlich.

    wie kann ich die Datei in einer GUI anzeigen lassen?

    Muss ich dafür ein Label benutzen und gibt es einen ähnlichen Befehl wie ArrayDisplay?

    Du könntest z.B. GUICtrlCreateEdit verwenden.

    Hier ein Beispiel (mit erhöhter Menge an Zeichen) :


    Nun möchte ich die Ausgabe wie folgt haben:
    sieben "2-er" dem jeweils 1 " " folgt, danach ein "2-er" dem dann zwei " " folgen und danach acht "2-er" mit einem " " und dann ein Zeilenumbruch

    Mit einem StringRegExpReplace bekomme ich es leider nicht hin - darum in zwei Schritten :

    AutoIt
    Global $_Texteingang = 'ab cd ef gh ij kl mn op qr st uv wx yz 01 23 45 67 89 ij kl mn op qr st uv ab cd ef gh ij kl mn op qr st uv wx yz 01 23 45 67 89 ij kl j7 55 6p'
    Global $_Ausgabe
    $_Ausgabe = StringRegExpReplace($_Texteingang, ".{1,24}\K(\s{1}|$)", '  ')
    $_Ausgabe = StringRegExpReplace($_Ausgabe, ".{1,50}\K(\s{1})", @CRLF)
    ConsoleWrite($_Ausgabe & @CRLF)

    Ich wollte fragen, ob mir jemand sagen kann, wie ich aus einer mehrzeiligen txt Datei die Daten auslesen kann.


    Hallo124;Tschüss13

    ...

    Dabei soll das "tschüss" vor dem "Hallo" angezeigt werden.

    Hier eine kleine Demo mittels _FileReadToArray (wie von Moombas vorgeschlagen) :

    Nachtrag :

    Die Sache ist die ich weiß nicht ob ich dann die Musik davon verwenden darf, weil das Programm soll ja später veröffentlicht werden, das jeder es benutzen kann und da ist die Musik sonst mit dabei.

    Aus dem Satz werde ich nicht so ganz schlau.

    Musikstücke einer Software (egal ob kommerziell oder Freeware) sind in aller Regel urheberrechtlich geschützte Komponenten. Von einer Auskopplung und externen Verwertung ohne Genehmigung des/der Urheber(s) würde ich abraten !

    Also ich werde es so machen, ich werde beide Exen in eine Verpacken, ist auch besser und diese wird ja dann verschlüsselt, indem ich diese Datei fertigstelle.

    Verschlüsselt wird dabei gar nichts, aber das wurde ja bereits mehrfach angemerkt. Gleiches gilt für die Problematik mit AutoIt .exe-Dateien (Virenscanner).


    Du kannst Dateien auch mittels des File to Base64 String Code Generator v1.20 von UEZ einbinden. Allerdings sollte die Dateigröße nicht zu gewaltig sein ;) .

    Nur eine Idee : In welchen Ordner verschiebst Du denn das (die) Verzeichnis(se) ?

    Werden auch erhöhte Rechte angefordert, wenn Du z.B. von c:\temp nach c:\temp2 verschiebst ?

    EDIT :

    Sorry, nicht genau gelesen - ich hatte DirMove im Kopf :Face: .

    Hat jemand eine Idee wieso WinMove() erhöhte Rechte benötigt?

    EDIT : hipfzwirgel

    Das Verhalten ist nicht neu, siehe z.B. winmove-does-not-work-under-some-circumstances

    Kurzfassung :

    WinMove("AdminTool by HS 2017", "", 2963, 1, 450, 480)

    Offenbar versuchst Du das Fenster eines mit Adminrechten bereits gestarteten Programms mit einem AutoIt-Skript zu verschieben, welches nicht über Adminrechte verfügt.

    Daher ist hier #RequireAdmin erforderlich.

    Aber muss es in Zeile 9 nicht Round($g_iUserAppliedDPI/$g_fDPIDefault, 2)

    heißen??

    Hmm, ich muss mich wohl korrigieren.


    Die o.a. Skalierungsformel verwende ich, um z.B. Schriftgrößen in Labels usw. an die eingestellte Prozentdarstellung anzupassen. Bei den Koordinaten hast Du wahrscheinlich recht, da muss der Faktor aus i Round($g_iUserAppliedDPI/$g_fDPIDefault, 2) gebildet werden.

    Probiere es einfach aus ;) .