Hallo,
ist es möglich sowie bei lua mehrere AutoIt Dateien zu nutzen um mehr Struktur einzubauen?
Bzw. das eine Datei nur für ,,diesen" Sektor zuständig ist und die anderen Dateien für etwas anderes.
Und dann verbinden die Skripte.
Grüße
Hallo,
ist es möglich sowie bei lua mehrere AutoIt Dateien zu nutzen um mehr Struktur einzubauen?
Bzw. das eine Datei nur für ,,diesen" Sektor zuständig ist und die anderen Dateien für etwas anderes.
Und dann verbinden die Skripte.
Grüße
Kannst du uns vielleicht ein Beispiel geben?
AutoIt kann parallel keine Aufgaben abarbeiten (es gibt kein Multithreading, das geht nur über Multiprocessing), es ist aber möglich Codeschnipsel in andere Dateien auszulagern um den Projektordner besser zu strukturieren.
Deine Frage ist bisschen ambivalent gestellt und wir können dir darauf schlecht eine präzise Antwort geben.
Also was ich meine ist, das nicht ein AutoIt Skript für ein ganzes Projekt zuständig ist, (weil irgendwann ist es ja total langsam wegen über 10.000 Zeilen)
sondern mehrere Skripte im Projekt sind.
Skript A ist das main Skript.
Skript B ist nur zuständig für WINHTTP
Skript C Updater
Hoffe habens verstanden
Nein, AutoIt bietet intern keine Funktion die dem nahe kommen könnte.
Was sich hier anbietet wäre Multiprocessing, d.h. du erstellst mehrere Skripte welche für die unterschiedlichen Aufgaben zuständig sind und tauscht untereinander die Daten aus.
Main.au3 startet WebRequest.au3 mit bestimmten Parametern und WebRequest.au3 erledigt währenddessen seine Arbeit und die Main.au3 beschäftigt sich weiter mit der GUI.
Sollte die WebRequest.au3 dann die Ergebnisse haben teilt sie das der Main.au3 mit (da gibt es viele Ansätze zu Interprozesskommunikation: NamedPipes, GUIs, TCP, Dateiaustausch) und diese kann die Ergebnisse dann anzeigen.
Aber bevor du versuchst alles so auszulagern würde mich interessieren was du denn vor hast zu basteln, denn du kannst in AutoIt auch ohne Multiprocessing etwas vernünftiges auf die Beine stellen und bis zu einem bestimmten Grad "parallelisieren". Das hängt aber von den UDFs ab die du verwendest.
AutoIt für sich ist eigentlich gar nicht so langsam wie die Leute annehmen, wenn man effizienten Code schreibt, dann ist dieser auch schnell.
Könnte es eventuell sein, dass er gar nicht Multiprocessing/Threading meint sondern einfach nur die Auslagerung von Code in mehrere Dateien (wie alpines schon andeutete)?
Sezer - falls es so sein sollte: >>#Include<<
Ergänzend zu der Auslagerung von Code in Includes gibt es, zur Förderung der Übersichtlichkeit bei großen Skripten, auch noch das sog. code-folding ( Sezer : falls Du das nicht kennen solltest) :
https://www.autoitscript.com/forum/topic/16…d-code-folding/
https://www.autoitscript.com/forum/topic/18…within-regions/
Gruß Musashi
weil irgendwann ist es ja total langsam wegen über 10.000 Zeilen
Die Anzahl der Zeilen spielt natürlich auch eine Rolle... aber viel wichtiger ist die Anzahl der Zeichen im Script!
Mein aktuelles Projekt hat etwa 450000 Zeichen in 8100 Zeilen... und es läuft immer noch sehr schnell/gut. Im Editor (SciTE) macht sich das allerdings schon negativ bemerkbar. Um dem entgegen zu wirken, können geprüfte Funktionen in Gruppen zusammengefasst und dann als Include geladen werden, z.B. alle WM_*-Funktionen --> #include <_WM.au3>.
Kann Lua Multithreading? Lua ist doch auch einfach nur ne Interpretsprache.
Ich glaube der TE meinte einfach die #include Funktion, womit man weitere Dateien sequenziell einbinden kann.
Edit:
https://www.autoitscript.com/autoit3/docs/keywords/include.htm
Kann Lua Multithreading?
Von Haus aus nicht, es gibt aber Erweiterungen dafür, mit denen es dann möglich ist, z.B. Lua Lanes.
Lua ist doch auch einfach nur ne Interpretsprache.
Lua ist eine Scriptsprache... schau bei Wikipedia: https://de.wikipedia.org/wiki/Lua
Von Haus aus nicht, es gibt aber Erweiterungen dafür, mit denen es dann möglich ist, z.B. Lua Lanes.
Lua ist eine Scriptsprache... schau bei Wikipedia: https://de.wikipedia.org/wiki/Lua
Interessant, dass Multithreading so möglich ist. Das css von Lua Lanes ist auf jeden Fall erste Sahne.
Habe mich mit "Interpretsprache" falsch ausgedrückt. Ich meinte damit eher, dass Lua auch wie AutoIt über einen Interpreten läuft.