Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge

Grosse datei Teilen...

blow / 9 Antworten / Flachansicht Nickles

Hey leute, brauche dringend hilfe...


Ausgangslage: Ich habe dateien, die von einem Tag alle rechnungen beinhaltet. (Von einem verkaufsgeschäft) diese rechnungen sind alle aneinander gereiht und ich muss nun eine batch schreiben, die die rechnungen wieder trennt und in einzelne dateien abspeichert. vor jeder rechnung ist ein "f " und eine nummer. wie kann ich das machen?


bitte um hilfe

bei Antwort benachrichtigen
blow Nachtrag zu: „Grosse datei Teilen...“
Optionen

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)

bei Antwort benachrichtigen