URL: https://www.overclockers.at/coding-stuff/sp33d_up_my_schleife_144228/page_1 - zur Vollversion wechseln!
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 !
Code: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
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.
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.
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.
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026