Mit MP370 (protool) ein Verzeichnis erstellen

Waelder

Level-2
Beiträge
978
Reaktionspunkte
121
Zuviel Werbung?
-> Hier kostenlos registrieren
Oh Jeh wieder Speicherung von Daten auf einem Laufwerk. (Netz oder Lokal ist egal...)

Also ich habe folgendes Script :

Code:
Dim f,fs,Ordner,Dateiname

'Schlüssle Datum in String um um Dateiname zu erzeugen
PtVar.STUNDE = Hour(Now)
PtVar.MINUTEN = Minute(Now)
PtVar.JAHR = Year(Now)
PtVar.MONAT = Month(Now)
PtVar.TAG = Day(Now)
Dateiname = PtVar.JAHR&"."&PtVar.MONAT&"."&PtVar.TAG&"_"&PtVar.STUNDE&"_"&PtVar.MINUTEN&"_"&"Versuch.CSV"

'Schreibe Dateiname und Ordner in DB für erhalt nach Spannungsfall
PtVar.FILE_PRODUKTION = Dateiname
PtVar.ORDNER_PRODUKTION = "C:\Temp\XYZ\" 'Testordner !!!!!!!!!!!!!!!!!!!!!!!
Ordner = PtVar.ORDNER_PRODUKTION

'Vorbereiten Dateioperation
Set f = CreateObject("FileCtl.File")
Set fs = CreateObject("FileCtl.Filesystem")

'abfrage ob Verzeichnis existiert
If fs.Dir(ORDNER) = "" Then fs.MkDir(ORDNER) ' <- Das ist Line 22

'abfrage ob datei existiert 
If fs.Dir(Ordner+Dateiname) = "" Then 
f.Open (Ordner+Dateiname), 2
End If
f.LinePrint "Rezept-Nr.;"  'usw usw....

viele Daten dazwischen ....

f.Close
So nun wird 1x der Ordner erzeugt, eine CSV Datei abgelegt, dass ist richtig.

Beim 2ten aufruf bekomme ich die Meldung :
Fehler cannot create a file when that file already exists in script.... in Line 22

Ich muss folgendes bemerken : den Ordner C:\Temp\ gibt es, wenn ich anstelle :
PtVar.ORDNER_PRODUKTION = "C:\Temp\XYZ\"
PtVar.ORDNER_PRODUKTION = "C:\Temp\" angebe klappt es ?

Ich will lediglich nur einen Ordner erzeugen, wenn er besteht einfach nur in ihn reinschreiben.

Gruss Der Wälder
 
Versuch es mal so :
Code:
[SIZE=2][COLOR=#008000]' Ziel-Verzeichnis schon vorhanden ?[/COLOR][/SIZE]
[SIZE=2][COLOR=#008000]' ... wenn nein, dann erst erzeugen ...[/COLOR][/SIZE]
[SIZE=2][COLOR=#0000ff]Set[/COLOR][/SIZE][SIZE=2] fs = CreateObject("Scripting.FileSystemObject")[/SIZE]
[SIZE=2][COLOR=#0000ff]If [/COLOR][/SIZE][SIZE=2][COLOR=#0000ff]Not[/COLOR][/SIZE][SIZE=2] fs.FolderExists (Verzeichnis) [/SIZE][SIZE=2][COLOR=#0000ff]Then[/COLOR][/SIZE]
[SIZE=2] fs.CreateFolder (Verzeichnis)[/SIZE]
[SIZE=2][COLOR=#0000ff]End[/COLOR][/SIZE][SIZE=2][COLOR=#0000ff]If[/COLOR][/SIZE]
Das ist ein Auszug aus einem meiner Werke und müßte dir eigentlich helfen.

Gruß
LL
 
ne, wird es nicht.
warum guckt eigentlich keiner zuerst mal in die faq?
oder wisst ihr alle nicht wofür die da ist?

muss man n icht mal suchen. ist der dritte thread.

las mal den \ am ende weg
 
Wiedergutmachung

So jetzt hab ich mal alles Probiert.

@Larry
Danke trotzdem, das kann ich sicher mal auf ner PC Station gebrauchen

@Volker
Entschuldigung wegen des "durcheinanders" die FAQ habe ich gelesen hatte aber trotzdem mein Problemchen damit. Nach deiner Antwort habe ich das Script umgebastelt und siehe Da es geht (hoffentlich auch auf´m MP370).

Lösung wie folgt :

Code:
PtVar.ORDNER_BIGBAG = "C:\Temp\XYZ" ' <-Testordner

Ordner = PtVar.ORDNER_BIGBAG

'Vorbereiten Dateioperation
Set f = CreateObject("FileCtl.File")
Set fs = CreateObject("FileCtl.Filesystem")

'abfrage ob Verzeichnis existiert wenn nicht dann erzeugen
If fs.Dir(ORDNER) = "" Then
fs.MkDir(ORDNER)
End If

'abfrage ob datei existiert wenn nicht dann erzeugen
If fs.Dir(Ordner+"\"+Dateiname) = "" Then
f.Open (Ordner+"\"+Dateiname), 2
End If
usw.....
So mein Problem war wirklich das " \ " am Ende des Ordnerpfades habe ich den \ angesetzt geht das script 1x anschliessend meckert es.

Damit die Datei richtig abgelegt wird, habe ich anstelle If fs.Dir(Ordner+Dateiname)
If fs.Dir(Ordner+"\"+Dateiname) geschrieben. Der Haken ist das \ da muss es wieder rein.
Nun findet mein Script auch wieder die Datei im Ordner.

Ich hoffe nun es einigermassen richtig gemacht zu haben und sag nochmal

Danke
 
Zurück
Oben