WinCCFlex Skript zum Datum einer Datei auslesen

Paule

Level-1
Beiträge
3.058
Reaktionspunkte
869
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Kolleginnen und Kollegen.

Software: WinCC Flex 2008 SP1
Hardware: MP377

Ziel:
Ich möchte das aktuelle Datum der Backupdatei lesen und möchte es mit dem aktuellen Projektstand vergleichen.

Lösung:
Versuche jetzt erst mal nur die Backupdatei zu lesen:
Code:
[COLOR=royalblue][COLOR=black]1[/COLOR]. Dim[/COLOR] datei, fso, d, s
2. datei = "\Storage Card MMC\FlashBoot_MP377_12Touch\nk.nb0"
[COLOR=royalblue][COLOR=black]3.[/COLOR] Set[/COLOR] fso = [COLOR=royalblue]CreateObject[/COLOR] ("Scripting.FileSystemObject")
[COLOR=royalblue][COLOR=black]4.[/COLOR] Set[/COLOR] d = fso.GetFile (datei)
5. s = d.DateLastModified
6. SmartTags ("Datum_Backup") = s
Datum_Backup ist eine Interne Variable vom Typ Date&Time

Problem Fehlermeldung:
Code:
Fehler Active Xcomponent can't create object:
Scripting.FileSystemObject
in Skript <Datum_lesen> in Zeile 3
:confused: :confused: :confused:

Leute ich zähle auf Euch > Ihr schafft das :D
Danke schon mal im Voraus
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Volker,
danke erst mal für die Beispiele, aber irgendwie komm ich da nicht wirklich weiter. :confused:
Vor allem habe ich ja extra unter der Skript Hilfe von Flex nachgeschaut.
 
FileSystemObject-ActiveX unterschiedlich Win32 und WinCE

Code:
[COLOR=royalblue]Set[/COLOR] fso = [COLOR=royalblue]CreateObject[/COLOR] ("Scripting.FileSystemObject")
gilt nur für Runtime unter Win32!

Beim Panel MP377 unter WinCE muß man schreiben
Code:
Set fso = CreateObject ("[COLOR="Blue"][B]filectl.filesystem[/B][/COLOR]")

Gruß
PN/DP
 
gilt nur für Runtime unter Win32!

Beim Panel MP377 unter WinCE muß man schreiben
Code:
Set fso = CreateObject ("[COLOR=blue][B]filectl.filesystem[/B][/COLOR]")
Danke PN/DP
habe ich schon probiert, aber dann bekommen ich einen Fehler in der nächsten Zeile
4. Set d = fso.GetFile (datei)
Den genauen Wortlaut der Störmeldung weiß ich jetzt aber nicht.
Wenn Du Dir aber sicher bist, dann werde ich das noch mal probieren und die genaue Fehlermeldung Posten.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Skriptbeispiele

Hallo Paule,

wie schon volker in #2 schrieb
schau mal hier http://www.sps-forum.de/showthread.php?t=15348
ganz unten findest du einen link zum sprachverzeichnis von vbs für wce.
findest Du die für WinCE gültige Schreibweise der Datei-Befehle in VBScript_WinCE.pdf

Als Anregung hier mal ein paar Skript-Beispiele aus meinen WCCflexible-Projekten.
Die müsstest Du Dir aber noch für Dein Projekt leicht anpassen.

Damit ich meine Panel-Projekte komplett unter Windows XP testen/simulieren kann,
habe ich im WCCflexible-Projekt eine interne Panel-Variable "_System\!_RT-Sim_!"
vom Typ Byte, deren Startwert ich auf 0 oder 1 festlege, je nachdem, ob die Runtime
auf dem Panel oder auf dem WinXP-Testsystem laufen soll:
0=RT auf WinCE-OP / 1=RT auf PC (Simulation/Test)
Code:
' Function GetFileTimeStampA(File)
' File: String mit Dateiname, kann Pfad enthalten
' Rückgabe: Datei-Modified-Zeitstempel "yymmdd_hhnnss"
'           wenn File vorhanden und Attribut "Archiv" gesetzt ist
' Skript kann unter OP-WinCE und PC-Windows laufen
'
Dim fso, f, fAttr, fTimeStamp
'
GetFileTimeStampA = ""
If FileExist(File) Then
    If SmartTags("_System\!_RT-Sim_!") Then 'PC-Windows
        Set fso = CreateObject("Scripting.FileSystemObject")
        Set f = fso.GetFile(File)
        fTimeStamp = f.DateLastModified
        fAttr = f.Attributes
    Else 'WinCE
        Set fso = CreateObject("FileCtl.FileSystem")
        fTimeStamp = fso.FileDateTime(File)
        fAttr = fso.GetAttr(File)
    End If
    If fAttr And 32 Then 'Attribut "A" gesetzt
        GetFileTimeStampA = Right(DatePart("yyyy", fTimeStamp), 2) _
                          & Right("0" & DatePart("m", fTimeStamp), 2) _
                          & Right("0" & DatePart("d", fTimeStamp), 2) & "_" _
                          & Right("0" & DatePart("h", fTimeStamp), 2) _
                          & Right("0" & DatePart("n", fTimeStamp), 2) _
                          & Right("0" & DatePart("s", fTimeStamp), 2)
    End If
End If
Code:
' Function FileExist(File) prüft, ob die angegebene Datei vorhanden ist
' Rückgabewert muß True/False sein!
' Skript kann unter OP-WinCE und PC-Windows laufen
' File darf unter WinCE wildcards *? enthalten
'
Dim fso
FileExist = False
If SmartTags("_System\!_RT-Sim_!") Then 'PC-Windows
    Set fso = CreateObject("Scripting.FileSystemObject")
    If fso.FileExists(File) Then FileExist = True
Else 'WinCE
    Set fso = CreateObject("FileCtl.FileSystem")
    If fso.Dir(File) <> "" Then FileExist = True
End If
Code:
' Sub GetFileInfos(File, sAT, sLen, sAttrA)
' ermittelt Dateiinformationen: FileDateTime, FileLen, Attribut
' Rückgabe in sAttrA: ""   = Datei existiert nicht
'                     "A"  = Datei existiert und Archiv-Bit ist gesetzt
'                     "  " = Datei existiert und Archiv-Bit ist nicht gesetzt
' Skript kann unter OP-WinCE und PC-Windows laufen
'
Dim fso, f, fTimeStamp, fLen, fAttr
'
If FileExist(File) Then
    If SmartTags("_System\!_RT-Sim_!") Then 'PC-Windows
        Set fso = CreateObject("Scripting.FileSystemObject")
        Set f = fso.GetFile(File)
        fTimeStamp = f.DateLastModified
        fLen = f.Size
        fAttr = f.Attributes
    Else 'WinCE
        Set fso = CreateObject("FileCtl.FileSystem")
        fTimeStamp = fso.FileDateTime(File)
        fLen = fso.FileLen(File)
        fAttr = fso.GetAttr(File)
    End If
    If fAttr And 32 Then sAttrA = "A" Else sAttrA ="  " '"A" wird als Rückgabe erwartet! (siehe oben)
    sAT = sAttrA & " (" & Right("0000" & Hex(fAttr) & "h)  ", 8) & fTimeStamp : sLen = fLen & " Bytes"
Else 'Datei existiert nicht
    sAT = "    nicht vorhanden" : sLen = "" : sAttrA = ""
End If

Gruß
PN/DP
 
Code:
dim s
Set fso = CreateObject ("filectl.filesystem")
s=fso.FileDateTime("\Storage Card MMC\FlashBoot_MP377_12Touch\nk.nb0")

so oder ähnlich
 
Code:
dim s
Set fso = CreateObject ("filectl.filesystem")
s=fso.FileDateTime("\Storage Card MMC\FlashBoot_MP377_12Touch\nk.nb0")
Oh happy day :D
Genau das war es :TOOL:
Ich danke Euch !

:s18:
 
Zurück
Oben