Hallo Zusammen,
ich bin vor wenigen Stunden auf AutoIt gestoßen und habe ich mich ein bisschen eingearbeitet. Nun stecke ich aber fest und benötige euch Experten
Ein bisschen Erfahrung im Programmieren habe ich.
Was ich benötige
Ich habe eine PDF und eine CSV, die mit Semikolons getrennt ist. Die PDF möchte ich so oft duplizieren wie die CSV Zeilen hat. Der Name der PDF soll dann aus der 7. Spalte (bzw. nach dem 6. und dem 8. Semikolon) der CSV erstellt werden und in einen Zielordner verschoben werden.
Was ich habe
Bisher habe ich eine GUI erstellt, wo man die PDF, CSV und das Zielverzeichnis auswählen.
Was ich mir überlegt habe
Man könnte das Problem mit einer Do-Until-Schleife lösen. Also
1. PDF kopieren
2. in CSV in Zeile 1 zu Spalte 7 gehen und Wert kopieren
3. PDF nach diesem Wert umbenennen
4. PDF verschieben
5. Zeilen-Zähler +1
solange bis Werte in Spalte G zu finden sind.
Ab Zeile 60 komme ich ins Stocken.
Ich habe hier im Forum auch schon fleißig in anderen Themen gesucht aber so richtig konnte ich da nicht schlau werden.
Danke für euer Bemühen und viele Grüße
Kalisser
#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>
#include <StringConstants.au3>
#include <File.au3>
Example()
Func Example()
Local $hGUI = GUICreate("einePDFduplizieren", 425, 110)
Local $idPDFInput = GUICtrlCreateInput("", 5, 5, 200, 20)
Local $idPDFBrowse = GUICtrlCreateButton("PDF auswählen", 210, 5, 90, 20)
Local $idCSVInput = GUICtrlCreateInput("", 5, 30, 200, 20)
Local $idCSVBrowse = GUICtrlCreateButton("CSV auswählen", 210, 30, 90, 20)
Local $idZielordnerInput = GUICtrlCreateInput("", 5, 55, 200, 20)
Local $idZielordnerBrowse = GUICtrlCreateButton("Zielordner auswählen", 210, 55, Default, 20)
Local $idStarten = GUICtrlCreateButton("Start", 330, 80, 90, 25)
GUISetState(@SW_SHOW, $hGUI)
Local $sFilePath = ""
Local $sPDFRead = ""
Local $sCSVRead = ""
Local $ZielordnerRead = ""
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
Case $idPDFBrowse
$sFilePath = FileOpenDialog("Wähle die PDF aus", "G:\PDF", "PDF-Datei (*.pdf)") ; Wählt die Ursprungs-PDF aus
If @error Then
ContinueLoop
EndIf
GUICtrlSetData($idPDFInput, $sFilePath) ; Setz den Pfad der PDF in das Feld ein.
Case $idCSVBrowse
$sFilePath = FileOpenDialog("Wähle die CSV aus", "G:\CSV", "CSV-Datei (*.csv)") ; Wählt die CSV aus
If @error Then
ContinueLoop
EndIf
GUICtrlSetData($idCSVInput, $sFilePath) ; Setz den Pfad der CSV in das Feld ein.
Case $idZielordnerBrowse
$sFilePath = FileSelectFolder("Wähle den Zielordner", "G:\Zielordner")
If @error Then
ContinueLoop
EndIf
GUICtrlSetData($idZielordnerInput, $sFilePath) ; Setz den Pfad des Zielordners in das Feld ein.
Case $idStarten
$sPDFRead = GUICtrlRead($idPDFInput) ; Liest den Pfad zur PDF
$sCSVRead = GUICtrlRead($idCSVInput) ; Liest den Pfad zur CSV
$ZielordnerRead = GUICtrlRead($idZielordnerInput) ; Liest den Pfad zum Zielordner
If FileExists($sPDFRead) And FileExists($sCSVRead) And FileExists($ZielordnerRead) Then ; Prüft, ob alle Dateien existiren
Do
_FileCopy($sPDFRead, $ZielordnerRead) ; Dupliziert und benennt die PDFs
While ; Hier hakt es denn bei mir
MsgBox($MB_SYSTEMMODAL, "Erfolg", "Die PDF wurde dupliziert und umbenannt!")
Else
Switch @error
Case 1
MsgBox($MB_SYSTEMMODAL, "Error", "PDF konnte nicht gefunden werden")
Case 2
MsgBox($MB_SYSTEMMODAL, "Error", "CSV konnte nicht gefunden werden.")
Case 3
MsgBox($MB_SYSTEMMODAL, "Error", "Zielordner konnte nicht geöffnet werden")
EndSwitch
EndIf
EndIf
EndSwitch
WEnd
GUIDelete($hGUI) ; Delete the previous GUI and all controls.
EndFunc ;==>Example
Alles anzeigen