Hallo Zusammen!
Aus diversen Gründen muss ich einige Programmfunktionen in eine separate Datei auslagern, welche ich vom Hauptprogramm aus anspreche.
Dies sind vor allem Zeitgründe.
Damit will ich nicht sagen, dass AutoIt zu langsam ist. Ganz und gar nicht. Es sind viel mehr die angeschlossenen Festplatten / Memory-Sticks etc. die langsam sind.
Nehmen wir an, ich muss für mein Projekt viele Dateien auf zwei verschiedenen Medien (Memory-Sticks oder CDs....) vergleichen.
Dann kann ich das entweder tun, in dem ich zuerst alle benötigten Daten vom Medium A einlese, danach vom Medium B und danach nach meinen Kriterien / Vorgaben vergleiche!
Das braucht aber viel Zeit.
Nun könnte ich aber Zeit sparen, in dem ich Medium A und Medium B parallel mit jeweils einem separaten Programm einlese und die gesammelten Daten dem Hauptprogramm zur Verfügung stelle, welches dann die Daten vergleicht!
Soweit zum Hintergrund.
Aber wie mache ich das?
Die Daten, sollen in ein Scripting.Dictionary eingelesen werden, welche ich mit
[autoit]
$oData1 = ObjCreate('Scripting.Dictionary')
$oData2 = ObjCreate('Scripting.Dictionary')
im Hauptprogramm erstelle.
Nun möchte ich aber nach dem Erstellen dieser Objekte jeweils einen Pointer auf diese Objekte den zwei nun zu startenden Programmen übergeben.
Diese Programme füllen dann diese Dictionaries ab und geben im Anschluss den Pointer wieder zurück.
Dann kann das Hauptprogramm mit dem Daten in den Scripting.Dictionaries weiterarbeiten!
Wie kann ich das bewerkstelligen?
Oder gibt es andere (schnelle!) Strukturen, welche anstelle von Scripting.Dictionary eingesetz werden können, auf welche dann mit einem Pointer gearbeitet werden kann?
(ArrayList, Hashtable, Queue und Stack habe ich schon versucht, aber die sind - in meinem Fall - langsamer als Scripting.Dictionary)
Ich muss ja die Tabellen schlussendlich auch wieder durchsuchen können. Und da ist halt das Scripting.Dictionary optimal!
Vielleicht könnte mir hier dieser Beitrag helfen???? (2. Beispiel) Klick
Gruss
Veronesi