Hallo gemeinde,
ich muss mal wieder eine kleine Frage stellen. Ich bekomme jeden Tag viele Eifact Rechnungen und die dazugehörigen EVNs. Meine Script läuft soweit gut.
Spoiler anzeigen
#include <File.au3>
#include <date.au3>
#include <array.au3>
#include <string.au3>
Opt("TrayIconDebug", 1) ;0=no info, 1=debug line info
;
Global $pathMain = "C:\GLI_PROD\Mapping\EDI_Eingang\" & @MDAY & "." & @MON & "." & @YEAR & "_test" & ".txt"
Dim $pfad = "C:\GLI_PROD\Mapping\EDI_Eingang\"
Dim $string = _FileListToArray($pfad, "*.INH";) ; liest alle *.INH-Files in Array $string
Dim $match, $frta
Dim $arErgebnis[1]
Dim $arErgebnis1[1]
;Dim $pathMain
If Not IsArray($string) Then
MsgBox(16, "", "Keine Inhouse Datei(en) gefunden.. EXIT!";)
Exit
EndIf
For $i = 1 To $string[0] ; Dateiliste abarbeiten
_FileReadToArray($pfad & $string[$i], $frta)
If @error <> 0 Then
MsgBox(4096, "Error", " Fehler beim Einlesen der Datei: " & $pfad & $string[$i] & @LF & "Fehler: " & @error)
Else
$match = _StringBetween($frta[2], "/", ";";) ; Wert in Zeile 2 auslesen
If Not @error Then
If StringInStr($frta[1], "ER2529";) Then ; Eintrag ist vorhanden
If StringInStr($frta[2], "K;380";) Then
_TAG ()
_ArrayAdd($arErgebnis, "Datei: " & $string[$i] & " mit RE.-Nr.: " & $match[0])
Sleep(1500)
ElseIf StringInStr($frta[2], "K;130";) Then ; Eintrag ist vorhanden
_TAG_EVN ()
Sleep(1500)
EndIf
_FileWriteFromArray($pathMain, $arErgebnis, 1)
EndIf
Else
;
MsgBox(4096, "", "In Datei: " & $string[$i] & " ist Nummer nicht enthalten.";)
EndIf
EndIf
Next
;
Func _TAG ()
If FileExists("C:\GLI_PROD\Mapping\ELFE_\Rechnung\Rechnung\" & @YEAR & "\" & @MON & " " & @YEAR & "\";) Then ; Ordner vorhanden
FileMove("C:\GLI_PROD\Mapping\EDI_Eingang\" & $string[$i], "C:\GLI_PROD\Mapping\ELFE_\Rechnung\Rechnung\" & @YEAR & "\" & @MON & " " & @YEAR & "\", 1)
Else
DirCreate("C:\GLI_PROD\Mapping\ELFE_\Rechnung\Rechnung\" & @YEAR & "\" & @MON & " " & @YEAR & "\";) ; Ordner anlegen mit Datum Jahr\Monat Jahr
FileMove("C:\GLI_PROD\Mapping\EDI_Eingang\" & $string[$i], "C:\GLI_PROD\Mapping\ELFE_\Rechnung\Rechnung\" & @YEAR & "\" & @MON & " " & @YEAR & "\", 1)
EndIf
EndFunc ;==>_TAG
Func _TAG_EVN ()
If FileExists("C:\GLI_PROD\Mapping\ELFE_\EVN\EVN\" & @YEAR & "\" & @MON & " " & @YEAR & "\";) Then ; Ordner vorhanden
FileMove("C:\GLI_PROD\Mapping\EDI_Eingang\" & $string[$i], "C:\GLI_PROD\Mapping\ELFE_\EVN\EVN\" & @YEAR & "\" & @MON & " " & @YEAR & "\", 1)
Else
DirCreate("C:\GLI_PROD\Mapping\ELFE_\EVN\EVN\" & @YEAR & "\" & @MON & " " & @YEAR & "\";) ; Ordner anlegen mit Datum Jahr\Monat Jahr
FileMove("C:\GLI_PROD\Mapping\EDI_Eingang\" & $string[$i], "C:\GLI_PROD\Mapping\ELFE_\EVN\EVN\" & @YEAR & "\" & @MON & " " & @YEAR & "\", 1)
EndIf
EndFunc ;==>_TAG_EVN
Nun habe ich aber das Problem, das während eines Monatszyklus das Datum in den Dateien wechselt.
Spoiler anzeigen
Auszug aus der Zeile Mai
K;380;D--01/9005547731;9;20070501;20070501;20070531;31;;5608421124;;;;
Spoiler anzeigen
Auszug aus der Zeile Juni
K;380;D--01/9005547854;9;20070601;20070601;20070630;31;;5608421124;;;;
Wie kann ich es erreichen das das Datum ausgewertet wird und in den richtigen Monatsordner verschoben wird. Momentan verschiebe ich alles in ein und denselben Monatsordner.
Vielleicht habt ihr ja ne Idee.
MFg
Thomas B