mr.nice.
differential image maker
|
Hallo, ich hab mir vor kurzem in AutoIt3 ein Script gebastelt, mit dem ich aus Excel Dateien Wordlists machen kann. Das ganze ist nichts anderers als automatisiertes Copy & Paste welches zwischen Excel und dem Editor hin und herspringt. Nach jedem, in den Editor gepasteten, Wort kommt ein Zeilenumbruch, um die Einträge dann ganz einfach als Variablen definieren zu können, bzw. um sie zeilenweise abzuarbeiten. In einer externen config.ini lässt sich einstellen wieviele Spalten und wieviele Reihen das Excelfile hat. Funktionert soweit wunderbar, nur an der Performance der Schleife muss ich noch ein bisschen feilen, Verbesserungsvorschläge erwünscht ! Global $Paused
$a = IniRead ( "config.ini", "In wievielen Reihen?","Anzahl", "Nicht ganzzahlig oder negativ." )
; Check if file opened for reading OK
$b = IniRead ( "config.ini", "In wievielen Spalten?","Anzahl", "Nicht ganzzahlig oder negativ." )
; Check if file opened for reading OK
If $a = -1 Then
MsgBox(0, "Error", " -1 oder konnte config.ini nicht finden.")
Exit
EndIf
HotKeySet("+!c", "TogglePause")
HotKeySet("^!x", "Terminate")
HotKeySet("^!m", "ShowMessage")
;;;; Copy & Paste ;;;;
Send ("+!c")
;Keep this otherwise the Script will start immediatly;
Send("{ESCAPE}")
;This is needed to get rid of the Alt-Functions;
For $a1 = 0 to $a step 1
do
send ("{DOWN}")
send("{LEFT " & $b & "}")
$a1 = $a1 + 1
For $b1 = 0 to $b step 1
do
send ("^c")
;Here you gotta enter the name of the window where you want to paste the text;
WinActivate ("List", "")
send("^v")
WinActivate ("Microsoft Excel", "")
send("{TAB}")
$b1 = $b1 + 1
Until $b1 = $b
Next
$b1 = 0
Until $a1 = $a
Next
;;;;;;;;
Func TogglePause()
$Paused = NOT $Paused
While $Paused
ToolTip('Converter is idle',300,0)
WEnd
ToolTip('Converter ist working',300,0)
EndFunc
Func Terminate()
Exit 0
EndFunc
Func ShowMessage()
MsgBox(4096,"","Converter, ein Tool für Excel, Fab 05")
EndFunc
|
that
Hoffnungsloser Optimist
|
Du hast im inneren "For" eine weitere "Do...Until" Schleife mit derselben Variablen, das ist irgendwie komisch.
Du könntest generell das AutoIt Script durch ein JScript oder VBScript ersetzen, das Excel via Automation steuert, dann brauchst du überhaupt keine sichtbaren Windows dafür.
|
mr.nice.
differential image maker
|
Danke ich werd' mal versuchen eine do..until wegzulassen.
Kennt sich vielleicht jemand mit 2 dimensionalen Arrey's in AutoIt aus (Spalten x Zeilen) ? Damit könnte ich mir glaube ich einiges an Arbeit ersparen.
Ich will das ganze schon eher in AutoIt machen, da dies nur den ersten Schritt darstellt, die Ausgabedatei soll dann später in einem AS/400 User-Interface abgearbeitet werden.
|
Crash Override
BOfH
|
Wie wäre es mit dem speichern als csv Datei und dann nur jedes semikolon durch einen zeilenumbruch ersetzen?
Ich kenne AutoIT nicht aber das ist selbst mit vi möglich.
|