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

Ergebnis 1 bis 6 von 6

Thema: Strcat und B&R

  1. #1
    Registriert seit
    10.01.2014
    Beiträge
    163
    Danke
    5
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich versuche einen Dateinamen aus Monat (00-12), Jahr und Tag (00-31) zusammenzusetzen.
    Da es auch Tage und Monate mit nur einer Stelle gibt, will ich die Fehlende stelle mit einer 0 füllen.
    Mein Code:
    Code:
        itoa(year, (UDINT) &xyear); 
        itoa(month, (UDINT) &xmonth); 
        itoa(day, (UDINT) &xday); 
        STRING Test[17]="";
        strcpy(filename,Test);
        strcat(filename,xyear);
        if(month<=9){
            strcat(filename,"0");
            strcat(filename,xmonth);
        }else{
            strcat(filename,xmonth);
        }
          
        if(xday<=9){
            strcat(filename,"0");
            strcat(filename,xday);
        }else{
            strcat(filename,xday);
        }
        strcat(filename,".txt");
    Für den 6.3.2014 bekomme ich 20153036.txt es sollte aber 20150306.txt sein.
    Wo könnte mein Fehler liegen?
    Zitieren Zitieren Strcat und B&R  

  2. #2
    Registriert seit
    17.10.2007
    Beiträge
    263
    Danke
    5
    Erhielt 52 Danke für 48 Beiträge

    Standard

    Hallo Knubbel,

    Code:
    ...
    if(xday<=9) {
    ...
    Es müsste heißen "if(day<=9)"


    Ich würde eine führende Null jedoch folgendermaßen -ohne Abfrage- realisieren:
    Code:
    RIGHT(strcat("0", xday), 2)
    Ungetestet, da manchmal ineinander verschachtelte Methoden nicht (sauber) funktionieren.


    Gruß, Fred

  3. #3
    knuppel ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    10.01.2014
    Beiträge
    163
    Danke
    5
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Was meinst du mit dem Ausdruck RIGHT?

  4. #4
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.186
    Danke
    923
    Erhielt 3.291 Danke für 2.660 Beiträge

    Standard

    Die rechten 2 Zeichen (letzten 2 Zeichen) im String:
    RIGHT("0" + "9", 2) --> "09"
    RIGHT("0" + "19", 2) --> "19"

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  5. #5
    knuppel ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    10.01.2014
    Beiträge
    163
    Danke
    5
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Ich programmiere in C, "RIGHT" ist wohl ein ST oder AS-Basic Befehel?

  6. #6
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.186
    Danke
    923
    Erhielt 3.291 Danke für 2.660 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von knuppel Beitrag anzeigen
    Ich programmiere in C, "RIGHT" ist wohl ein ST oder AS-Basic Befehel?
    ST

    Right(..) gibt es in Standard-C nicht. Ob B&R eine Bib hat weiß ich nicht.

    C equivalent to BASIC Mid(), Left(), Right()?
    http://www.cplusplus.com/reference/s...string/substr/

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

Ähnliche Themen

  1. Antworten: 8
    Letzter Beitrag: 24.12.2013, 11:01
  2. B&R #ifdef und ST
    Von Lazarus™ im Forum Sonstige Steuerungen
    Antworten: 4
    Letzter Beitrag: 18.11.2013, 21:52
  3. B&R AS 3.0.8.0 und Windows 7
    Von Anaconda55 im Forum Sonstige Steuerungen
    Antworten: 18
    Letzter Beitrag: 16.10.2012, 13:36
  4. B&R: AS Q und P Regler
    Von fighter im Forum Sonstige Steuerungen
    Antworten: 5
    Letzter Beitrag: 18.10.2008, 01:31
  5. B&R und Fernwirken?
    Von Techniker im Forum Sonstige Steuerungen
    Antworten: 3
    Letzter Beitrag: 13.11.2004, 11:15

Lesezeichen

Berechtigungen

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