Hey leute, ich habe es hingekriegt mit hilfe von WinBatch Studio. nun habe ich noch ein kleines problem...
...ich muss noch einen fehlerabfang machen. wenn man z.b. kein dateiname eingibt, muss ein fenster kommen, das sagt: bitte dateiname nochmals eingeben.
Hier der Quelltext:
NewFileStatus = 0
CCNr = 0
Verzeichnis = 0
FirstTime = 0
picklistfile = 0
picklistfile = AskLine("Datei", "Bitte Dateiname angeben: (X = Beenden)", "PICKLIST.t20030103") ;Eine Textbox erscheint, in die man den Dateinamen eingeben muss.
handle = FileOpen("%picklistfile%", "READ") ;Ein file namens "picklistfile" wird erstellt und die eingegebene Datei wird gelesen.
x = FileRead(handle)
while @TRUE
if x == "*EOF*" then ;Wenn datei "EOF" dann Pause
Break
else
if FirstTime == 0 then
VerzeichnisPos = StrScan(x, ".", 1, @FWDSCAN) ;Eingegebener Dateiname wird auf die stellen nach dem . gesucht
VerzeichnisPos = VerzeichnisPos + 1
PicklistPos = StrScan(picklistfile, ".", 1, @FWDSCAN) ;String "Picklistfile" wird gesucht. Eine stelle nach dem . vorwärts.
PicklistPos = PicklistPos + 1
Verzeichnis = strsub(x, VerzeichnisPos, 9) ;Sucht das Verzeichnis auf Files ab mit 9stellen nach dem .
if Verzeichnis == strsub(picklistfile, PicklistPos, 9) then ;
CCNr = strsub(x, 1, 2)
DirMake(Verzeichnis) ;Verzeichnis wird erstellt
DirChange(Verzeichnis) ;Es wird ins neu erstellte Verzeichnis gewechselt
FirstTime = 9
endif
else
if strsub(x, 20, 5) == "=====" then ;Sucht nach ==== im file
if NewFileStatus != 0 then ; Wenn ==== nicht gefunden wird, soll das file geschlossen werden
FileClose(NewFile) ;File Schliessen
endif
FileName=strsub(x, 1, 17) ;Jede einzelne rechnung wird mit der entsprechenden 17 stelligen Rechnungsnummer gespeichert.
FileName = strCat("F", CCNr, FileName) ;bei jedem File wird noch ein "F" und die CC Nummer angefügt.
NewFile = FileOpen(FileName, "WRITE") ;das neue File wird geschrieben
NewFileStatus = 9
else
if NewFileStatus == 9 then
FileWrite(NewFile, x)
endif
endif
endif
x = FileRead(handle)
endif
endwhile
if NewFileStatus == 9 then
FileClose(NewFile)
endif
FileClose(handle)