Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 8 von 8

Thema: Formatierung der Zeit in Dateinamen

  1. #1
    Registriert seit
    04.09.2012
    Beiträge
    38
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Ausrufezeichen


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Guten Tag.

    ich habe das Problem das mir beim Erstellen von Dateinamen für den FTP Upload nicht ein vollständiges Datum und Uhrzeit erhalte. (inkl. 0)
    dies ist mein Code:

    Code:
        oTime(SystemTime:=sys64, TimeDate:=sysTD);
         sFileName := CONCAT(sFileName, UINT_TO_STRING(sysTD.Day));
         sFileName := CONCAT(sFileName, '-');
         sFileName := CONCAT(sFileName, UINT_TO_STRING(sysTD.Month));
         sFileName := CONCAT(sFileName, '-');
         sFileName := CONCAT(sFileName, UINT_TO_STRING(sysTD.Year));
         sFileName := CONCAT(sFileName, '-');
         sFileName := CONCAT(sFileName, UINT_TO_STRING(sysTD.Hour));
         sFileName := CONCAT(sFileName, ':');
         sFileName := CONCAT(sFileName, UINT_TO_STRING(sysTD.Minute));
         sFileName := CONCAT(sFileName, ':');
         sFileName := CONCAT(sFileName, UINT_TO_STRING(sysTD.Second));
         sFileName := CONCAT(sFileName, '_');
         sFileName := CONCAT(sFileName, filename_destination);
         sFileName := CONCAT(sFileName,'.txt');
    Das Ergebnis ist z.B. :
    11-9-2012-8:5:12_Daten.txt

    ich müsste aber so etwas erstellen:
    11-09-2012-08:05:12_Daten.txt


    könnte mir bitte jemand bitte weiterhelfen.

    Vielen Dank
    tiego
    Zitieren Zitieren Formatierung der Zeit in Dateinamen  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.712
    Danke
    398
    Erhielt 2.397 Danke für 1.997 Beiträge

    Standard

    Hallo,
    mein Vorschlag wäre, dass du die jeweiligen Werte (von Tag, Monat etc.) um 100 erhöhst, davon einen String machst und von diesem String die rechten beiden Zeichen verwendest.
    Das könnte in etwa so aussehen :
    Code:
    sFileName := CONCAT(sFileName, RIGHT(UINT_TO_STRING(100 + sysTD.Day) ,2));
    Du mußt hier aber noch checken ob die Syntax stimmt ...

    Gruß
    Larry

  3. #3
    tiego ist offline Benutzer
    Themenstarter
    Registriert seit
    04.09.2012
    Beiträge
    38
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Frage

    Hallo

    Vielen Dank.
    hat super geklappt.

    nun hoffe ich ihr könnt mir auch mit diesem Problemen weiterhelfen!?

    Code:
    flanke(CLK:= start );
     start := flanke.Q;
    
     IF start THEN
         convert_ready := FALSE;
         FOR i:=0 TO maxbytes DO                                                    (* Feld löschen *)
             result[i] := 0;
         END_FOR
    
         ptString := ADR(result);                                                        (* Pointer auf Anfang des Bytearrays *)
         index := 0;
         FOR i:=0 TO (maxdata) DO                    (* maxdata = globale Variable, die die Größe des Datenarrays definiert *)
             ptString^ := DELETE(DT_TO_STRING(dataarray[i,0].timestamp),3,1);    (* Zeitstempel --> Bytefeld *)
             index := index + LEN(ptString^);                                            (* feststellen wieviel Byte benutzt sind *)
             ptString := ADR(result[index]);                                            (* Pointer auf Ende des Wertes *)
    
             ptString^:= trenner;                                                        (* Trennzeichen *)
             index := index + LEN(ptString^);
             ptString := ADR(result[index]);
    
             FOR j:=0 TO anzMess DO            (* eigentliche Messwerte, die in den Spalten stehen, werden hier konvertiert *)
                 ptString^ := INT_TO_STRING(dataarray[i,j].messw);                    (* eigentliche Messwerte -> Bytefeld *)
                 index := index + LEN(ptString^);
                 ptString := ADR(result[index]);
    
                 ptString^ := trenner;                                                    (* Trennzeichen *)
                 index := index + LEN(ptString^);
                 ptString := ADR(result[index]);
             END_FOR
    
             ptString^:= '$r$n';                                                            (* new line *)
             index := index + LEN(ptString^);
             ptString := ADR(result[index]);
         END_FOR
         convert_ready := TRUE;                                                        (* Konvertierung abgeschlossen *)
     END_IF
    Ich möchte einfügen das es für die einzelnen spalten im textfile eine bezeichnung gibt.

    Momentan erhalte ich:
    Code:
     2012-09-11-09:54:33    477       479      480    
     2012-09-11-09:54:38    1477    1479    1480    
     2012-09-11-09:54:43    2477    2479    2480    
     2012-09-11-09:54:48    3477    3479    3480    
     2012-09-11-09:54:53    4477    4479    4480

    ich möchte das ich mit Variablen das erhalte:
    Code:
     Zeit                            Variable 1 Variable 2 Variable 3
     2012-09-11-09:54:33         477          479      480    
     2012-09-11-09:54:38       1477         1479     1480    
     2012-09-11-09:54:43       2477        2479      2480    
     2012-09-11-09:54:48       3477        3479      3480    
     2012-09-11-09:54:53       4477        4479      4480

    Wieviele Messwerte des Datenloggers aufgezeichnet werde kann erweitert werden. die variablen für die spaltenbezechnug müsten dies auch sein.
    bitte könnt ihr mir helfen dies im Code zu integrieren?
    Komme leider nicht mehr weiter.

    Vielen Dank
    Grüsse
    Markus

  4. #4
    Registriert seit
    25.11.2010
    Ort
    OWL
    Beiträge
    745
    Danke
    27
    Erhielt 164 Danke für 142 Beiträge

    Standard

    Im Prinzip so, wie Du es jetzt auch schon tust,z. B.
    Code:
    ptString^:='Zeit               ';
    index:=index+LEN(ptString^);
    ptString:=ADR(result[index]);
    Die Namen für die Spalten würde ich einem "ARRAY[0..anzMess] OF STRING" entnehmen.
    Zuvor würde ich aber noch etwas anderes tun. Den oben gezeigten Code brauchst Du im Prinzip jetzt schon fünf mal, zum Einfügen der Überschrift noch ein paar mal mehr. Ich würde den in einen FB packen,
    der den anzuhängenden String als VAR_INPUT bekommt und das Bytearray "Result" als VAR_OUTPUT rausgibt. Die Variablen "ptString" und "index" können dann als lokale Variablen im FB verschwinden, die Aufrufe werden übersichtlicher. Ausserdem sind Erweiterungen einfacher, wenn der String nicht einfach nur angehängt werden soll, sondern z. B. zuvor links oder rechts mit Leerzeichen aufgefüllt werden soll, um eine bestimmte Länge zu erreichen.

  5. #5
    tiego ist offline Benutzer
    Themenstarter
    Registriert seit
    04.09.2012
    Beiträge
    38
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo

    Vielen Dank für die Antwort.

    leider kenne ich mich in ST nicht so recht aus und bin ziemlicher Neuling in diesem Bereich.
    ich kann deswegen auch nicht folgen.
    könntet ihr mir bitte dies anhand eines Beispieles bitte erklären?

    Vielen Dank
    Markus

  6. #6
    Registriert seit
    25.11.2010
    Ort
    OWL
    Beiträge
    745
    Danke
    27
    Erhielt 164 Danke für 142 Beiträge

    Standard

    Zitat Zitat von tiego Beitrag anzeigen
    leider kenne ich mich in ST nicht so recht aus und bin ziemlicher Neuling in diesem Bereich.
    ich kann deswegen auch nicht folgen.
    Hm, wie hast Du denn dann Deinen bisherigen Code zustande bekommen?

  7. #7
    tiego ist offline Benutzer
    Themenstarter
    Registriert seit
    04.09.2012
    Beiträge
    38
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo

    Codesnipsel und wago bespieldateien....

    Grüsse
    Markus

  8. #8
    Registriert seit
    25.11.2010
    Ort
    OWL
    Beiträge
    745
    Danke
    27
    Erhielt 164 Danke für 142 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Aber verstehen tust Du den Code schon, oder?
    Und wenn ja, wo genau hört es mit dem "folgen können" auf?

Ähnliche Themen

  1. Auto-Formatierung in TwinCAT deaktivieren
    Von gloeru im Forum CODESYS und IEC61131
    Antworten: 6
    Letzter Beitrag: 29.08.2012, 10:04
  2. Formatierung in Excel
    Von bits'bytes im Forum PC- und Netzwerktechnik
    Antworten: 9
    Letzter Beitrag: 22.05.2012, 14:25
  3. Antworten: 4
    Letzter Beitrag: 24.12.2010, 11:39
  4. SCL-Dateinamen
    Von MaKro_T im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 21.06.2010, 15:55
  5. Antworten: 4
    Letzter Beitrag: 22.02.2008, 23:50

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •