Um mal einen Tip für das eigentliche Problem (alle Rechner im Netzwerk) zu geben: https://autoit.de/index.php?page…51440#post51440
Beiträge von Oscar
-
-
Das ist ganz einfach!
Das Ergebnis ist: Eins.
Jede ID gibt es nur einmal. -
Constants.au3 includet aber die MsgBoxConstants.au3
Und außerdem die meissten anderen (man braucht ja meist mehrere). -
In der Hilfe sind die Konstanten genannt. Diese kannst Du nutzen, wenn Du
[autoit]#include <Constants.au3>
[/autoit]
in Deinem Script oben einfügst.Setze mal bei dem CodeWizard den Haken bei "Use Constants", dann werden die Konstanten genutzt und das Include automatisch eingefügt.
-
Ich würde ein Dictionary-Objekt verwenden, weil das bei solchen Vergleichen sehr viel schneller ist, als wenn man Arrays durchlaufen muss.
So würde es mit den obigen Daten funktionieren:Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
Global $sKey, $sVal, $iFound, $sErgebnis = ''Global $oDictAuftrag = ObjCreate('Scripting.Dictionary')
[/autoit] [autoit][/autoit] [autoit]
Global $aAuftrag = StringSplit(FileRead(@ScriptDir & '\auftrag.csv'), @CRLF, 1)
For $i = 1 To $aAuftrag[0]
$iFound = StringInStr($aAuftrag[$i], '|')
$sKey = StringLeft($aAuftrag[$i], $iFound - 1)
$sVal = StringMid($aAuftrag[$i], $iFound + 1)
$oDictAuftrag.Add($sKey, $sVal)
NextGlobal $oDictProtokoll = ObjCreate('Scripting.Dictionary')
[/autoit] [autoit][/autoit] [autoit]
Global $aProtokoll = StringSplit(FileRead(@ScriptDir & '\protokoll.csv'), @CRLF, 1)
For $i = 1 To $aProtokoll[0]
$iFound = StringInStr($aProtokoll[$i], '|')
$sKey = StringLeft($aProtokoll[$i], $iFound - 1)
$sVal = StringMid($aProtokoll[$i], $iFound + 1)
$oDictProtokoll.Add($sKey, $sVal)
NextGlobal $aNeuAuftrag = StringSplit(FileRead(@ScriptDir & '\neuauftrag.csv'), @CRLF, 1)
[/autoit]
For $i = 1 To $aNeuAuftrag[0]
$iFound = StringInStr($aNeuAuftrag[$i], '|')
$sKey = StringLeft($aNeuAuftrag[$i], $iFound - 1)
If Not $oDictAuftrag.Exists($sKey) And Not $oDictProtokoll.Exists($sKey) Then $sErgebnis &= $aNeuAuftrag[$i] & @CRLF
Next
Global $hFile = FileOpen(@ScriptDir & '\ergebnis.csv', 2)
If $hFile <> -1 Then
FileWrite($hFile, $sErgebnis)
FileClose($hFile)
EndIf
ConsoleWrite($sErgebnis & @CR) -
Ich habe das Programm mal an die aktuelle Version (v3.3.12.0) von AutoIt angepasst. Siehe Post#1.
-
Und welches Game soll da aufgezeichnet werden?
-
Erst dachte ich, Du hättest noch mehr verändert, weil das Script nicht mehr funktionierte (alle Dateilängen waren bei der Statistic auf 0).
Nach ein bißchen Fehlersuche, fiel mir der Forenbug wieder ein (Backslash in Anführungszeichen werden verschluckt). In Zeile 737 muss zwischen den Anführungszeichen ein Backslash stehen, dann klappts.
Ja, im Prinzip würde das auch genügen.
Es wäre zwar schöner mit dem Dateinamen als Variablennamen und nur den Funktionsnamen hochzählen, aber da im Savepath ja noch der Original-Dateiname steht, geht es auch so.
-
Die Dateinamen umzubenennen ist aber unpraktisch, weil ich dann nicht mehr weiss, welches Icon welches war.
Ich habe mal ein paar Änderungen an Deinem Script vorgenommen, um zu verdeutlichen, wie ich das meine.
Man kann beim MultiSelectMode jetzt einen Funktionsnamen angeben und einen Zähler einfügen z.B. "icon%cccc%" wobei "icon" der Name ist und "%cccc%" kennzeichnet den Zähler mit Anzahl der Stellen.
So funktioniert es für mich schonmal zufriedenstellend. Du musst Dir also keinen Stress deswegen machen. Vielleicht möchtest Du das ja so in etwa integrieren.Script als Anhang! Im Editor stehen "nur" 100000 Zeichen zur Verfügung.

Einen schönen Urlaub!

-
Torni: In so einem Fall einfach mal den AntiViren-Programmierer anschreiben und das Problem schildern. Mit dem nächsten AntiViren-Update sollte das dann behoben sein.
-
Schau mal, wie ich die Eingabe gelöst habe: Listview-Datenbank-Beispiel
-
Wie immer: gute Arbeit!

Mir ist nur gerade noch etwas eingefallen, für den MultiSelect-Mode.
Bei meinem aktuellen Projekt benutze ich zahlreiche (>130) Icons, die ich eigentlich mithilfe Deines Generators in das Script packen wollte.
Dabei ist dann das einlesen in den Speicher ein Problem, weil alle Funktionsnamen völlig unterschiedlich lauten. Ich müsste ein Array mit den ganzen Funktionsnamen anlegen und diese dann mit Call aufrufen.
Das ginge zwar, aber es wäre einfacher, wenn Dein Generator beim anlegen der Funktionen einfach einen Namen plus einen Zähler benutzen könnte. Sodass das dann etwa so aussehen würde: _icon001, _icon002, _icon003 usw...
Damit würde ich mir das Array mit den Funktionsnamen sparen und die Funktionen per Call('_icon' & $i) aufrufen (For...Next-Schleife).
Den Variablennamen in den Funktionen solltest Du aber weiterhin so beibehalten. Das ist dann noch ein guter Hinweis auf die Datei. -
Du könntest Dir das Ganze mit dem scrollen der GUI sparen, wenn Du zum anzeigen der Daten einfach ein Listview benutzen würdest, anstatt der Labels.

-
Ich habe schonmal eine Funktion dazu geschrieben: [ offen ] Prüfen ob ein bestimmtes Programm installiert ist
-
Da werden die Seiten wohl erst zur Laufzeit generiert. Dann funktioniert InetRead nicht korrekt.
Hast Du es mal mit _IEDocReadHTML versucht? -
Mit dieser kleinen Funktion kann man einem PIC-Control (GuiCtrlCreatePic) ein beliebiges Bild zuweisen (alle von GDI+ unterstützten Grafikformate).
- Dabei werden Bilder, die größer als das PIC-Control sind, proportional auf die Größe des PIC-Controls herunterskaliert.
- Die Bilder werden immer horizontal/vertikal zentriert angezeigt.
- Die Grafikdatei kann entweder als GDI+ Bitmap, als Dateiname oder als Binärdaten übergeben werden. So kann man auch den File to Base64 String Code Generator von UEZ benutzen, um Bilder direkt ins Script einzubinden.Neu (21.06.2018):
- Man kann mit der Funktion jetzt auch Buttons ein Bild oder ein Bild und Text zuweisen.
- Wenn dem Button nur ein Bild zugewiesen wird, dann wird es entsprechend der Höhe proportional skaliert zentriert auf den Button angezeigt.
- Wenn Bild und Text zugewiesen werden, kann man angeben, ob der Text links ($GCSIE_LEFT) oder rechts ($GCSIE_RIGHT) vom Bild angezeigt werden soll (siehe Example.au3).
Achtung! Die Übergabeparameter haben sich komplett verändert! Die neue Version ist nicht mehr mit der alten Version kompatibel!
In dem Beispiel-Script sind zwei Bilder als Binärdaten enthalten, die mit dem erwähnten Code-Generator erstellt wurden.
Ansonsten sollte das Beispiel und die Kommentare die Anwendungsmöglichkeiten verdeutlichen. -
Schwer zu sagen, wenn man die Seite nicht kennt. Ist die Seite öffentlich zugänglich?
Oder gibt es eine Beispielseite?Außer den IE-Funktionen gibt es auch noch die Möglichkeit die Seite mit InetRead zu holen und dann direkt in den HTML-Daten zu lesen.
Aber, wie gesagt, ohne zu wissen was Du auslesen willst, kann man nur schwer helfen. -
Nachdem der Foren-Crash alles auf irgendwann im Juni zurückgesetzt hat, hier nochmal das Malprogramm-Projekt.
Ich stelle dieses Projekt zur freien Verfügung. Ihr könnt das Projekt beliebig verändern, erweitern, anpassen. Ihr dürft euch dann auch als Autor eintragen (meinen Namen löschen).Die von mir verwendeten Icons sind von http://www.fatcow.com/free-icons und stehen unter der Creative Commons 3.0 - Lizenz mit Namensnennung (Link zur Homepage). Diese Namensnennung und den Link zur Homepage habe ich auf der Hilfeseite bereits eingebaut. Wenn ihr die Icons verwenden wollt, dann darf der Link nicht entfernt werden!
Was funktioniert bereits:
- Bild neu erstellen, Bild laden, Bild speichern, Hilfeseite aufrufen
- Werkzeuge (Malstift, Pinsel, Radiergummi, Pipette, Linie, Quadrat/Rechteck, Kreis/Ellipse)
- Anzeige des verwendeten Werkzeugs
- Stift- und Pinselbreite einstellbar
- Stift- und Pinselfarbe auswählbar
- Hintergrundfarbe ist weiß
- X/Y KoordinatenanzeigeScreenshot:
AutoIt-Paint.pngAlle benötigten Dateien befinden sich im ZIP-Archiv im Anhang!
-
Radio Eriwan empfiehlt: Poste Dein Script und teile uns mit, um welche Seite es sich handelt und welche Zeile da ignoriert wird.

-
Du musst für _FTP_ListToArrayEx natürlich auch das Handle vom Connect nehmen und nicht von der FTP-Session (siehe auch in der Hilfe).
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
#include <FTPEx.au3>
#include <Array.au3>
Local $Server = '*************'
Local $User = '********'
Local $Pass = '*********'
Local $DauerInStunden = 72Local $hOpen = _FTP_Open("UploadFTP Verbindung")
[/autoit]
If @error Then Exit MsgBox(16, "Fehler", "FTP Open nicht erfolgreich!")
Local $hConn = _FTP_Connect($hOpen, $Server, $User, $Pass)
If @error Then Exit MsgBox(16, "Fehler", "FTPConnect nicht erfolgreich!")
Local $fileList = _FTP_ListToArrayEx($hConn)
_ArrayDisplay($fileList)
_FTP_Close($hConn)
_FTP_Close($hOpen)