# Wincc- In "C" Dateien, verschieben, kopieren, löschen?



## Bosga (5 Dezember 2008)

Hallo,
ich habe in WinCC ein C-Skript geschrieben welches eine Datei(Txt und CSV) erzeugt und mit bestimmten Werten der S7 befüllt.Abhängig von der Systemzeit...
Das klappt alles auch soweit.Nur leider finde ich keine Fuktion welche die erzeugte Datei verschiebt, kopiert oder löscht.
Habt ihr eine Idee?

Gruß
Bosga


----------



## Bosga (5 Dezember 2008)

*Anbei mein funktionierender C-Code. Hoffe Ihr könnt ihn mal einsetzen!*

#include "apdefap.h"

int gscAction( void )
{
#pragma code ("Kernel32.dll");
#pragma code ();


static char   FileName[64];
float                           fval[16];                     // Ändern auf die 
char   szTagName[256];
char               buffer  [256];   // Buffer für auslesen der Lokalzeit         
char               buffer1[256];
char               buffer2[256];
char               buffer3[256];
char           Computer[16];
char           szHeader1[256]="Wert\Sicherung \r \n" ;       //Wird später in der erzeugten Ausgabedatei mit angezeigt 


int                         i;
int            iMinute;              
int                   Min;

time_t         rawtime;
struct          tm * timeinfo;
FILE *stream;

time (&rawtime);
timeinfo = localtime (&rawtime);                       //Hier wird die Systemzeit ausgelesen

strftime (buffer,80,"%M",timeinfo);                     //Hier werden die Minuten aus der Lokalzeit ausgegeben
iMinute = atoi(buffer);                                            //Atoi = Ascii to Int

strcpy(szTagName, "S7-Programm(2)/DB-SOLL.Wert");                      // Kopiert den Quellstring "a." in Zielstring szTagName
fval[0] = GetTagFloat(szTagName);             // Beschreibt den internen Puffer -> Arrayfeld 0


if  (iMinute > 0  &&  iMinute < 5   ) 
{
   //Waage 1
        strftime(FileName,256,"C:\\REPORT\\Wert-%Y-%m-%d-%H-00.CSV",timeinfo);     //Muss auf den genauen Speicherpfad abgeändert werden
        stream = fopen(FileName, "a");                                                                                                          //Create new File
        //fprintf(stream,szHeader1);   
        strftime (buffer,256,"%Y-%m-%d    %H:%M h", timeinfo);
        sprintf(buffer1,   " %s\t     %4.1f kg    \r\n", buffer,fval[0]);   //Stream Print Formatierung
        fprintf(stream,buffer1);
        fclose(stream);

//Wie kann ich ab hier die erzeugte Datei verschieben,kopieren,löschen?
 }  
return 0; 
}


----------



## Fanta-Er (26 Dezember 2008)

*??????*

ich habe nicht viel/garkeine ahnung von C .

ABER deine aufgabe würde ich ganz anders lösen. 

1) zeiten kannst du zwischen wincc und cpu synchronisieren.
2) diese zeit kannst du in CE.VB-scripte benutzen.
(Date, Time, usw)
3) mit VB-scripten kannst du dateinen verlängern oder auf vorhanden sein kontrolieren. daraus ergibt sich die möglichkeit eine datei mit datumsstempel zu erzeugen. 
4) deine aufgabe ist somit nur ein "archiv"(sofern ich es richtig verstanden haben)

ich bin leider auf weihnachtsrundreise und habe auf diesem laptop kein wincc.
wenn du beispiele oder noch hilfe brauchst, antworte auf dem post und ich schicke dir am montag, wie ich die aufgaben löse......



gruss Fanta-Er


edit: geht es um wincc oder winccflexible??


----------



## Fanta-Er (26 Dezember 2008)

http://www.sps-forum.de/showthread.php?t=15348

hier im forum sind auch schon hilfen^^

wenn noch fragen sind, melde dich......


----------

