WinCC Flex VBScript WinCe - Move *.* bzw. Dateien kopieren

Dino

Level-1
Beiträge
39
Reaktionspunkte
9
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Jungs!

Anbei noch eine Variante mit Namengebung des Destinationsfiles. Das oder die Dateien werden beim Kopiervorgang umbenannt in:
"MeinString" & "Datum Zeit der Quelldatei".
Achtung: diese Prozedur bedingt eine Änderung in den regionalen Settings (control panel). Leider habe ich keine bessere Lösung gefunden! Zwingend muss in "Time" das ":" gegen ein "." ausgewechselt werden. Nicht zwingend kann in "Date" das Format "JJJJ.MM.TT" gesetzt werden. Das letztere hat den Vorteil auf dem USB-Stick Ordnung zu schaffen. Es hat jedoch den Nachteil die Alarmliste auch in diesem ungewöhnlichen Format anzuzeigen.

Im "normalen WinnCC-Flex" bitte folgende Variable deklarieren:
DataMmcFilename: String (L32, kann auch anders sein)


Code:
'Skript "CopyRenameFile" / DI - 11.01.2011
'===========================================

Dim PathSearch, Path, fso, Result, Index, SourceFile, DestFile

Set PathSearch = CreateObject("FileCtl.FileSystem")

'USB-Stick suchen
'----------------

    Path = "Storage Card USB" 
    
    SetValue SmartTags("DataSaveText"), 1                 'Text: Suche USB-Stick

    For Index = 1 To 30000                                 'entspricht ca. 20 Sekunden    
        If  PathSearch.Dir("\" & Path) = ""_
        And Index >= 30000 Then
        SetValue SmartTags("DataSaveText"), 2             'Text: USB-Stick nicht gefunden!
        
        ElseIf PathSearch.Dir("\" & Path) = Path Then     'Gefunden!
        SetValue SmartTags("DataSaveText"), 3            'Text: Datenübertragung gestartet
        Exit For
        End If
    Next
    
'CSV-Daten suchen, mit neuem Namen kopieren und Attribut auf Normal setzen     
'-------------------------------------------------------------------------        

    If SmartTags("DataSaveText")= 3 Then                'Datenübertragung gestartet
        Set fso = CreateObject("FileCtl.FileSystem")
            
        If  SmartTags("DataMmcFilename") = "" Then        'Leerer String als Dateiname
            SmartTags("DataMmcFilename")= "Archiv"        'ist unschön
        End If            
                
        Result = fso.Dir("\Storage Card MMC\*.csv")        'Suchen nach ersten Dateiname
        If Result = "" Then
                            SmartTags("DataSaveText")= 4'Text:Keine Daten vorhanden
                        Else
                            SourceFile = "\Storage Card MMC\" & Result
                            DestFile   = "\Storage Card USB\" & SmartTags("DataMmcFilename")& "_" & fso.fileDateTime(SourceFile) & ".csv"
                            SmartTags("DataSourceFileName")= SourceFile
                            SmartTags("DataDestFileName")= DestFile
                            fso.FileCopy SourceFile,DestFile
                            fso.SetAttr  SourceFile, 0                        
                            For Index = 1 To 999
                                Result = fso.Dir()        'Suchen nach weitere Dateinamen
                                If Result = "" Then
                                    Exit For
                                Else
                                    SourceFile = "\Storage Card MMC\" & Result
                                    DestFile   = "\Storage Card USB\" & SmartTags("DataMmcFilename")& "_" & fso.fileDateTime(SourceFile) & ".csv"
                                    SmartTags("DataSourceFileName")= SourceFile
                                    SmartTags("DataDestFileName")= DestFile
                                    fso.FileCopy SourceFile,DestFile
                                    fso.SetAttr  SourceFile, 0
                                End If    
                            Next
                        SmartTags("DataSaveText")= 5    'Text:Daten mit Erfolg übertragen
                        SetValue SmartTags("ScriptIndex"), Index                            
                                
        End If
    End If
    
'Daten auf MMC löschen
'---------------------
fso.Kill ("\Storage Card MMC\*.csv")

'Init
'----
Set PathSearch = Nothing
Set fso = Nothing
Ich wäre sehr froh wenn mich jemanden belehren könnte wie man einen WinCE-String mit WinCC-Flex ausseinander-schlachten und wieder zusammensetzen kann, zum Beispiel:
2011.01.11 18:06:33 ändern in
2011.01.11_18.06.33

Schöner Gruss, Dino


---------- EDIT MODERATOR VOLKER ----------
obiges stammt aus folgendem thread. es lohnt sich auch hier nochmal weiterzulesen.
http://www.sps-forum.de/showthread.php?t=41710
 
Zuletzt bearbeitet von einem Moderator:
Zurück
Oben