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

Beiträge von Yjuq

  • Rat gesucht. Autoit für automatisierte Uploadprozesse?

    • Yjuq
    • 16. Januar 2019 um 16:50

    Oh, das ändert natürlich einiges. Ich habe nicht nachgeschaut ob diese eine API zur Verfügung stellen. Danke für den Hinweis, ich schau mal rein ob das den TE weiterhilft. Vielleicht bleiben wir doch bei einer reinen AutoIt Lösung dann.

    Gun-Food : Es ist ja nicht nur der Upload. Es scheint so, als ob der TE mehr machen möchte. Das hat er nicht unbedingt erwähnt, lässt sich aber aus seinen Script erschließen.

  • Rat gesucht. Autoit für automatisierte Uploadprozesse?

    • Yjuq
    • 16. Januar 2019 um 13:31

    Hi o/

    Sorry für die späte Antwort, allerdings musste ich selber erst mal überlegen was die Beste Möglichkeit für dein Problem ist. Also, basierend auf deinen Informationen + dem Script was ich gesehen habe ist AutoIt leider nicht das passende Werkzeug für dein Vorhaben. Es würde mit AutoIt funktionieren, allerdings ist das durchaus aufwendiger nachdem ich mir mal die Webseite genauer angeschaut habe.

    Ich würde dir empfehlen mit PhantomJS zu arbeiten. Dies ist ein Web Browser ohne grafische Oberfläche. Der Vorteil dieses Browser ist es, dass du JavaScript Code ausführen kannst, womit du wiederum die gewünschte Webseite automatisieren kannst. Da die Webseite viel mit JavaScript arbeitet und ich gesehen habe dass du mehr machen willst als ein einfachen Upload, dürfte dies die angenehmste Lösung für dich sein. Allerdings erfordert das natürlich ein wenig Einarbeitung. Im Notfall lässt sich AutoIt immer noch dazwischen koppeln, da PhantomJS mit Konsolenausgaben arbeitet. Dies lässt sich wunderbar von AutoIt aus einlesen und auch steuern (Falls tatsächlich benötigt).

    Solche Browser Automatisationen sind etwas schwierig alleine mit AutoIt. Besonders sobald JavaScript ins Spiel kommt. Am besten informierst du dich erst einmal allgemein über PhantomJS und JavaScript (ggf. noch JQuery). Diese Webseite dürfte dir durchaus weiterhelfen: https://www.w3schools.com/

    http://phantomjs.org/ (PhantomJS Browser)

    https://www.w3schools.com/js/default.asp (JavaScript)

    https://www.w3schools.com/jquery/default.asp (JQuery)

    Es reicht wenn du einen groben Überblick hast. Dann versuch mal mit dem PhantomJS Browser einen automatischen Login zu schreiben. Dürfte einiges einfacher von der Hand gehen (normalerweise).

    Dein bisheriges Script ist leider nicht wirklich zu gebrauchen. Ich habe keine elegante Möglichkeit gefunden die dynamischen Elemente auf der Webseite mit AutoIt zu tracken. Sorry, vielleicht hat ja jemand noch einen passenden Vorschlag. Aber das ist leider das Beste was ich dir anbieten kann.

    Bei Fragen stehe ich natürlich gerne zur Verfügung.

    Ggf. kannst du auch mal gucken, ob dir die Browser Extension "Kantu" (https://a9t9.com/kantu) ggf. schon ausreicht? Wenn dir das für deine Vorhaben schon reicht, kannst du dir das obere eigentlich sparen.

  • Rat gesucht. Autoit für automatisierte Uploadprozesse?

    • Yjuq
    • 11. Januar 2019 um 11:03

    Lade doch mal dein bisheriges Skript einmal hoch. Falls sensible Daten darin vorhanden sind, solltest du diese besser davor zensieren / entfernen. Zudem wäre es hilfreich zu wissen um welche Plattform es sich eigentlich handelt. Du hast nach einem konkreten Umsetzungsbeispiel gefragt, allerdings ist das von Fall zu Fall unterschiedlich.

    Welchen Browser benutzt du? Sind die Uploads für private oder geschäftliche Zwecke? Im zweiten Fall, an dem eigenen Rechner oder Firmenrechner? Je präziser die Informationen umso eher kann ich dir helfen. Da du am Anfang eine allgemeine Frage gestellt hast, habe ich auch allgemein darauf geantwortet.

    Zitat

    Also ich würde das auch lieber ohne mouseclicks machen, [...]

    Gut, dann machen wir das mal so.

    Zitat

    [...] falls autoit in frage kommt, gibts es ein paar hilfreiche tutorials dazu, die euch in den sinn kommen? [...]

    Ich stelle dir alle notwendigen Informationen zur Verfügung sobald ich die Sachlage richtig eingeschätzt habe.

  • Rat gesucht. Autoit für automatisierte Uploadprozesse?

    • Yjuq
    • 10. Januar 2019 um 12:44

    Nun ja, die einfachste Möglichkeit die mir einfällt wäre, wenn du einfach den Bildschirm für das Ladesymbol scannst. Google Chrome hat in seinem Tab eine eigene Animation dafür, wenn eine Seite noch nicht vollständig geladen ist. Darüber kannst du ermitteln ob die Seite noch am laden ist. Zudem ist mir aufgefallen dass die meisten Browser während des ladens unten links (oder rechts, je nachdem wo der Mauszeiger gerade ist) eine Art Link Anzeige hat, die so lange bestehen bleibt bis die gewünschte Seite geladen ist.

    Unbenannt.png

    Hmn, ich würde dir aber eher empfehlen selber die Datenpakete via TCP zu verschicken.

  • Rat gesucht. Autoit für automatisierte Uploadprozesse?

    • Yjuq
    • 8. Januar 2019 um 14:15

    Hallo, leider kann ich über die Software "imacros" nicht viel sagen da ich sie selber nicht kenne bzw. genutzt habe. Allerdings kann ich dir versichern dass dein Vorhaben via AutoIt durchaus möglich ist. Allerdings dürfte das durchaus aufwendiger werden, als eine Software zu nutzen die Benutzerfreundlich gestaltet ist. Die Frage ist, in wie fern du dich mit AutoIt in der Zukunft auseinander setzen möchtest und es sich dann überhaupt lohnt sich jetzt einmal die Arbeit zu machen und die erforderlichen Themenbereiche zu erlernen.

    Generell lassen sich in AutoIt HTTP Anfragen über TCP verschicken, sodass ein "geklicke" im Browser nicht notwendig ist. Die eleganteste Lösung ist eine Art "eigenen Browser" ohne Benutzeroberfläche zu erstellen, welches lediglich die notwendigen Daten an die gewünschte Internetpräsenz versendet. Dies hätte den Vorteil, dass du während des Uploadprozesses den Rechner weiterhin frei nutzen könntest. Eine durchaus einfachere Variante stellt das automatisieren des Browsers über einer der vorhandenen UDFs dar. Z.B. der FireFox UDF (FF.au). Oder aber du bleibst bei deinem Mausklicks im Browser um den Prozess zu automatisieren und optimierst diesen so, dass es passt und ohne Probleme so arbeitet wie du es wünscht.

    Alternativ kannst du auch mit JavaScript arbeiten und via die Extension "Tampermonkey" deinen eigenen JS Code in die Webseite intigrieren. Damit lässt sich das auch auch (sogar wesentlich einfacher) automatisieren. Eine Software kann ich dir leider nicht empfehlen da ich noch keine genutzt habe für Browser Automatisierungen.

    Wie du siehst gibt es da verschiedene Möglichkeiten an dein Problem ran zu gehen. Ich würde auf die HTTP Anfragen via TCP oder JS tendieren. Wenn du Hilfe bei deinem Vorhaben brauchst, sind die User von AutoIt.de bestimmt gerne hilfsbereit. Ansonsten kannst du ggf. auch eine Anfrage in den Programmieranfragen stellen.

    Mit freundlichen Grüßen :)

  • XInput UDF - Game Controller

    • Yjuq
    • 25. Juni 2018 um 12:09
    Zitat

    Das kann doch nicht dein Ernst sein, direkt auf den Index zugreifen ohne zu prüfen ob der Call erfolgreich war?

    Doch, das ist mein Ernst. Gerade weil die Funktionen von XInput eine Interne Fehlerverarbeitung haben und dies hauptsächlich den Error Code zurück schmeißen, klappt das so wunderbar.

    Zitat

    Sollte dein DllCall aus welchen Gründen auch immer abschmieren (auch Standardfunktionen crashen ab und zu!), dann stürzt das gesamte Script ab.

    Bisher ist mir kein DllCall abgeschmiert, wenn der DllCall korrekt implementiert wurde. In meinen 8 Jahren Programmiererfahrung nicht einmal! Und ich spiele schon sehr viel mit DllCalls herum,... Ich bezweifel dass du das sogar absichtilich bei der UDF erzeigen kannst, wenn du die Funktionen benutzt wo ich schön die DllCalls drin verpackt habe.

    Zitat

    Die Returncodes der xinput.h geben ja oft dwords zurück die einen Statuscode beinhalten.

    Diese sind aber nicht in der XInput.h beschrieben, sondern in der WinError.h ... Und diese hat ne Menge an #define Anweisungen. Ich meine, ich kann da mal ein AutoIt Skript drüber jagen und die alle #define Anweisungen einmal in AutoIt Konstanten konvertieren, ob das weiterhilft ist eine andere Frage. Das Einfachste Error Handling ist es, den Rückgabewert der Funktion gegen 0 zu prüfen. Fertig... Und das ist eigentlich genau das, was du da in deinem Beispiel kurz veranschaulicht hast...

    Zitat

    Wenn ich die UDF nutze und meinen Controller abziehe, habe ich keine Möglichkeit festzustellen, ob er noch dran ist oder nicht.

    Doch, hast du... Da jede Funktion dir dann einen anderen Rückgabewert als "0" entgegen schmeißt.


    Mir ist klar, dass du bemängelst, dass ich keinen Support für Fehlermanagement eingebaut habe. Werde ich aber nicht implementieren da ich für meine eigene Anwendung nunmal den Overhead, was für die Fehlerverarbeitung unumgänglich ist, komplett minimiert haben wollte. Deswegen auch nur eine 1:1 Übersetzung der XInput.h

    Ich habe hier lediglich die UDF geteilt, da es ggf. für den einen oder anderen nützlich sein könnte. Vor allem da derjenige dann die Funktionen nicht selber via DllCall aufrufen muss + die Strukturen vorab erstellen. Ich habe kein Interesse daran die UDF weiter auszubauen da sie für meine Zwecke reicht. Es ging mir primär nur darum, diese zu teilen. Wer noch mehr braucht, kann sich entsprechendes selber implementieren. :p

    Sollte allerdings die Nachfrage groß genug sein, kann ich mir mal überlegen ob ich entsprechende Fehlerverarbeitung doch noch implementiere. Aber bisher habe ich kaum Fragen hier im Forum gesehen, welche sich auf Gamepads bezogen.

  • XInput UDF - Game Controller

    • Yjuq
    • 24. Juni 2018 um 22:28

    Servus :)

    Nach langer Zeit brauche ich AutoIt tatsächlich mal wieder. In diesem Fall habe ich den Input von einem Game Controller benötigt. Da mir die bisherigen UDF nicht so gefallen haben, hab ich eine 1:1 Übersetzung der XInput.h geschrieben. Diese umfasst sämtliche Konstanten und DLL Calls, welche die XInput API mitliefern. Die Dokumentation dazu findet ihr hier:

    XInput - MSDN

    Im Anhang findet ihr die UDF! Wie gesagt, es handelt sich dabei um eine 1:1 Übersetzung der XInput.h welche für C / C++ zur Verfügung stehen. Einige Hinweise:

    Konstanten sind im $XINPUT_*-Format (Eigentlich genau so, wie es die Doku anzeigt, lediglich mit $ am Anfang)

    Strukturen sind im $_XINPUT_*-Format (Auch wie es die Doku anzeigt, mit $ am Anfang)

    Funktionen sind im XInput*()-Format (Doku :d)

    Hilfsfunktionen intern für die UDF sind mit _XINPUT_*() deklariert. (Da müsst und solltet ihr normalerweise nicht drauf zugreifen...)

    Ein einfaches Beispiel um den Button Status auszulesen (also welche Buttons auf einen Controller gedrückt sind):

    AutoIt
    #include "XInput.au3"
    
    ; Struktur für die Button Infos
    $tState = DllStructCreate($_XINPUT_STATE)
    
    ; Wenn [Start] gedrückt wird, beendet sich das Programm
    While Not BitAND($tState.wButtons, $XINPUT_GAMEPAD_START)
        Sleep(1000)
        XInputGetState(0, $tState) ; Buttons erfassen
        ConsoleWrite($tState.wButtons & @CRLF)
    WEnd
    Alles anzeigen

    Bei Problemen, Fragen und Anregungen stehe ich euch zur Verfügung!

    Dateien

    XInput.au3 10,99 kB – 532 Downloads
  • Map Deklaration throws error

    • Yjuq
    • 30. Mai 2018 um 14:18

    Lustigerweise stehen die Maps aber noch in der aktuellen doku drinne unter der Language Reference.

  • KI schreiben

    • Yjuq
    • 13. Mai 2018 um 04:44
    Zitat von Scrotch

    Hallo ich bin neu in der Programmierszene.

    Zitat von Scrotch

    Wie kann man eine KI schreiben die dazu lernt

    Ohne dich demotivieren zu wollen, das wird nichts wenn du Anfänger bist. Hast du die Basics schon drauf? Wenn ja, dann kannst du dir mal anschauen was Künstliche neuronale Netze sind.

  • Child Prozesse andocken?

    • Yjuq
    • 13. Mai 2018 um 04:35

    Kommen diese "Child-Prozesse" nicht eigentlich nur zustande, wenn Multithreading betrieben wird? - Bei AutoIt dürfte das glaube ich so einfach nicht funktionieren, wenn es wirklich nur daran geht die Prozesse im Taskmanager untereinander anzuzeigen.

  • Pause für Befehlsabläufe - Block

    • Yjuq
    • 2. Mai 2018 um 20:31

    Naja, das einfachste was du machen kannst ist: Das Skript schreiben und per AutoIt später im fertigen Skript die Sleeps einzufügen.

  • Während Whileschleife keine Buttons mehr drückbar

    • Yjuq
    • 30. April 2018 um 15:30

    So richtig kann ich mir unter deiner Beschreibung nicht vorstellen was du meinst. Vielleicht hab ich auch was anderes im Sinn als du versuchst du erläutern. Wärst du so freundlich und würdest ein minimalistisches Beispiel dazu verfassen?

  • Während Whileschleife keine Buttons mehr drückbar

    • Yjuq
    • 30. April 2018 um 14:14
    Zitat von xSunLighTx3

    Ich kann dir auch die TimerDiff() Methode empfehlen. Wenn es ein wenig "besser" sein soll, muss man in der Hauptschleife

    einen Iterator, FPS Variable und Speed Variable einbauen und kalkulieren. Ist aber nur bei aufwendigen Spielen nötig. :D

    Wozu? Kannst du mir ggf. genauer erklären was du meinst? Ich sehe da keinen Sinn in deiner Aufzählung...

    Ich hatte dir doch auch schon mal dazu was verfasst:

    PandaRunner Reworked - Ein Autoit Game

  • Während Whileschleife keine Buttons mehr drückbar

    • Yjuq
    • 29. April 2018 um 05:10
    AutoIt
    Global $gui, $button, $label, $timer, $counter
    
    $gui = GUICreate("", 120, 70)
    $button = GUICtrlCreateButton("Klick", 10, 10, 100, 20)
    $label = GUICtrlCreateLabel("", 10, 40, 100, 20)
    GUISetState()
    
    While True
        Switch GUIGetMsg()
            Case -3
                Exit
            Case $button
                If Not $timer Then $timer = TimerInit()
        EndSwitch
    
        If $timer And TimerDiff($timer) >= 1000 Then
            $counter += 1
            $timer = TimerInit()
            GUICtrlSetData($label, $counter)
        EndIf
    WEnd
    Alles anzeigen

    Ich könnte dir auch natürlich die fertige Lösung geben. Allerdings bezweifel ich, dass dies in irgend einer Weise weiterhilft. Hilfe zur Selbsthilfe - Fangen wir erst mal damit an dass du lernst Beispiele und Prinzipien von fremden Code in den eigenen einzuarbeiten. :)

  • Während Whileschleife keine Buttons mehr drückbar

    • Yjuq
    • 28. April 2018 um 20:35
    Zitat von alpines

    Du kannst auch eine Funktion mit AdlibRegister registrieren die alle x Millisekunden ausgeführt wird.

    Dann hast du auch keine blockierende Schleife.

    Nein, auf keinen Fall!

    So wie sein Code momentan aussieht wird das nur noch schlimmer. Hast du mal genauer rein geschaut?

    ---

    Naja, du könntest beispielsweise in deiner Hauptschleife mit TimerInit() und TimerDiff() arbeiten, um die Zeitdifferenz zu messen. Darauf basierend kannst du alle x Sekunden den Kontostand erhöhen:

    AutoIt
    Global $timer = TimerInit()
    
    ; Deine Hauptschleife:
    While True
        If TimerDiff($timer) >= 2000 Then
            ConsoleWrite("2 Sekunden sind vergangen..." & @CRLF)
            $timer = TimerInit()
        EndIf
    WEnd

    Dein Code ist die reinste Katastrophe. Du erstellt 2 GUIs und löscht GUI Elemente. Ich würde dir erst mal empfehlen von Koda die Finger zu lassen und selber so eine GUI mal aufzubauen. Folgende Funktionen könnten dir von Hilfe sein:

    GUICtrlSetData()

    GUICtrlSetStata()

    Dann musst du nicht ständig die GUI Elemente löschen und neu erstellen.

  • Während Whileschleife keine Buttons mehr drückbar

    • Yjuq
    • 28. April 2018 um 18:15

    Du hast eine While Schleife in der While Schleife. Dadurch können die Events nicht mehr verarbeitet werden da du diese Schleife niemals verlässt. Du bist hängst quasi in der zweiten While Schleife drin ohne diese jemals zu verlassen.

    Sleep() eignet sich allgemein nicht um mit Zeiten (in dem Fall 2 Sekunden) zu arbeiten. Die bessere Alternative wäre hier mit TimerInit() und TimerDiff() zu arbeiten.

    Außerdem sehe ich noch ein paar Sachen die ich persönlich bemängeln würde. Das ist aber der Code Stil und hat weniger mit der Funktionalität des Programmes zu tun.

  • Position der Einfügemarke

    • Yjuq
    • 27. April 2018 um 23:37

    Gibt es einen Grund warum du den Textmarker Position in der CMD erfassen willst? Was hast du denn überhaupt vor, bzw. was willst du erreichen. Für mich liest sich das so, als ob dein Lösungsweg zu deinem eigentlichen Problem komplett unpassend ist.

  • 2D Array - Doppelte Beziehungen bestimmter Spalten in einem Array ermitteln und löschen

    • Yjuq
    • 22. April 2018 um 21:33
    Zitat von borsTiHD

    Vielen Dank nochmal das du dir so viel Mühe machst.

    Ehrlich gesagt war mir nur langweilig. Das war auch der Hauptgrund warum ich mir die Mühe gemacht habe. xD

  • Hotkey; Anfängerfrage

    • Yjuq
    • 22. April 2018 um 17:48

    Mit HotKeySet() registrierst du eine Funktion als Callback Funktion. Eine Callback Funktion wird immer dann aufgerufen, wenn ein Prozess den Befehl dazu gibt. In dem Fall sagst du deinen Betriebssystem mit HotKeySet(), dass es bitte darauf aufpassen soll ob eine bestimmte Taste gedrückt wurde. Wenn das der Fall ist, soll es eben deine Callback Funktion aufrufen. Also das, was du gemacht hast.

    AutoIt räumt nach der Beendigung des eigenes Skriptes für gewöhnlich alles wieder auf. Deine Callback Funktionen fliegen aus den Speicher und stehen nicht mehr zur Verfügung. Das Folge daraus, die Funktionen in deinem Skript reagieren nicht mehr auf deine Tastenanschläge, da dein Programm schon beendet ist. Für dich heißt das dann nur, dass du dein Programm von der Beendigung abhalten musst. Das machst du, wie chesstiger dir bereits mitgeteilt hat, mit einer Schleife.

    Die While Schleife lässt dein Skript am leben, es verhindert die Beendigung. Eine While Schleife beinhaltet normalerweise immer eine Bedingung. Wenn diese Bedingung nicht zutrifft, wird die Schleife abgebrochen. Deswegen steht als Bedingung in der While Schleife auch ein True dabei. Dieses True sagt deiner Schleife, dass die Bedingung wahr ist und sie weiter durchlaufen werden kann. Du hälst also dein Skript bis ins unendliche am Leben.

    Da jeder Prozess aber auch die CPU benötigt (und wir dessen Rechenzeit nicht mit einer nichts tuenden While Schleife fressen wollen), benutzt man für gewöhnlich ein Sleep() um die Ausführungszeit drastisch zu drosseln. Dies gibt die CPU mehr Zeit für andere Prozesse, welche die CPU benötigen.

    Ich hoffe das war verständlich genug erklärt.

  • 2D Array - Doppelte Beziehungen bestimmter Spalten in einem Array ermitteln und löschen

    • Yjuq
    • 22. April 2018 um 17:03

    Mir ist gerade aufgefallen, dass ich noch'n kleinen Bug drin hab. Folgende Daten werden ebenfalls als doppelte Einträge erkannt:

    Haus A Haustür A Straße Haus B Haustür B
    aaa 1 222 xyz 2
    aaa 1 222 def 1

    Meine Abfrage in der quickCheckRelaion() behandelt dieses Fallbeispiel nicht, wenn Einträge (Haus, Haustür und Straße) zwar zu 100% übereinstimmen, aber die Relation zwischen den anderen Daten unterschiedlich ist.

    Zitat

    Aber verstehe ich die Logik richtig, dass du alle Beziehungen checkst... Immer von Zeile 1 mit den restlichen, danach Zeile 2 mit den restlichen (also quasi immer nach unten).

    Wenn eine Zeile davon doppelt erkannt wird, wird die gerade zu prüfende Zeile als true makiert und egal ob die anderen Zeilen nicht doppelt (false) sind, der $check bleibt für diese eine zu prüfende Zeile immer true (wegen $check = true Or false).

    Sobald alle Zeilen geprüft wurden (sagen wir mal für Zeile 1), und mindestens eine Beziehung gefunden wurde (also $check = true), dann wird die Zeile einfach übersprungen.

    Ja, das hast du richtig verstanden. Damit überprüfe ich das erste Element und alle danach folgenden und prüfe einfach, ob sich solch eine Relation nochmal im Array vorkommt. Ist das der Fall kann die Relation an der Stelle übersprungen werden, da ja die gleiche nochmal vorkommt und die ebenfalls mit den nachfolgenden Elementen noch mal geprüft wird.

    Zitat

    Irgendwann befindet sich die Schleife an dem Punkt wo die "letzte doppelte" Beziehung für Zeile 1 gefunden wurde (zb. Zeile 9). Dort bleibt $check = false und nur dann wird die Zeile in das neue Array geschrieben.

    Also hab ich quasi immer die letzte Zeile aller doppelten Beziehungen im Array?

    Korrekt, der Grund dahinter ist um die nötigen Schleifendurchläufe zu reduzieren. Eigentlich kann man sogar schon die Suche dann komplett beenden für die Stelle, sobald ein doppelter Eintrag gefunden wurde. Sieht dann so aus:

    AutoIt
        For $b = $a +1 To UBound($data, 1) -1 ; Zeile 18 im Orginalskript
            $check = $check Or quickCheckRelation($data, $a, $b)
            If $check Then ExitLoop
        Next

    Wozu sollten dann auch noch die anderen Elemente geprüft werden wenn sowieso schon fest steht, dass der Eintrag dann übersprungen wird? Beschleunigt das Ganze bei größeren Datenmengen etwas.

    ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +

    Hier der Fix zu dem oberen beschriebenen Bug:

    AutoIt
    Func quickCheckRelation(ByRef $d, $a, $b)
        Return _
              $d[$a][2] = $d[$b][2]   And _
            (($d[$a][0] = $d[$b][0]   And _
              $d[$a][1] = $d[$b][1]   And _
              $d[$a][3] = $d[$b][3]   And _
              $d[$a][4] = $d[$b][4])  Or  _
             ($d[$a][0] = $d[$b][3]   And _
              $d[$a][1] = $d[$b][4]   And _
              $d[$a][3] = $d[$b][0]   And _
              $d[$a][4] = $d[$b][1]))
    EndFunc
    Alles anzeigen

    Zudem habe ich auch die Abfrage optimiert und die Bedingungen von vielen OR auf AND geändert. Das hat den Effekt, wenn eine Bedingung schon nicht zutrifft (also FALSE ist), dass der Rest nicht mehr überprüft wird. Beschleunigt die Abfrage auch um einiges. ^^

    Im besten Fall gibt's nur eine Abfrage (Wenn die Straße unterschiedlich ist) und im schlimmsten Fall 8 (wenn sich alle Daten gleichen bis auf die Haustür und die Relationen von der Position getauscht sind).

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™