Zeichenkette mit PicoC aufteilen

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • FMR
    Azubi
    • 11.04.2019
    • 2

    #1

    Zeichenkette mit PicoC aufteilen

    Zeichenkette mit PicoC aufteilen

    Ich möchte mit dem Loxone-Baustein Programm eine Zeichenkette «ABCD612345» am Eingang T1 aufteilen in 3 Teile.

    Teil1: «ABCD» Zeichenkette an Ausgang Txt1
    Teil2: «6» Zahl an Ausgang O1
    Teil3: «12345» Zahl an Ausgang O2



    Ich programmiere normalerweise mit VBasic

    Txt1 = Left(T1,4)
    O1 = Mid(T1,5,1)
    O2 = Right(T1,5)

    Wer kann mir helfen in PicoC?
    Vielen Dank!

    (Bin 82 Jahre alt und kann mich nicht mehr, nur für diese Aufgabe, in eine neue Sprache PicoC einarbeiten.)
  • loxGigi
    Dumb Home'r
    • 21.09.2025
    • 26

    #2
    Hier mal ein Rahmen, ungetestet... Viel Spaß damit. :-)

    Code:
    char *myinput = getinputtext();
    
    // Immer ein Zeichen mehr für das terminierende 0-Zeichen vorsehen
    char part1[5], part2[2], part3[6];  
    
    strncpy(part1, myinput,     4);
    strncpy(part2, &myinput[4], 1);
    strncpy(part3, &myinput[5], 5);
    
    free(myinput);
    
    setoutputtext(0, part1);
    setoutput(0, atoi(part2));
    setoutput(1, atoi(part3));
    Zuletzt geändert von loxGigi; vor 6 Stunden.

    Kommentar

    • FMR
      Azubi
      • 11.04.2019
      • 2

      #3
      Hurra es funktioniert!!!!

      Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Screenshot 2026-07-06 144531.png
Ansichten: 1
Größe: 15,4 KB
ID: 487617
      Musste nur mit 0 ergänzen für Ausgang Txt1

      // char *myinput = "ABCD612345";
      char *myinput = getinputtext(0);

      // Immer ein Zeichen mehr für das terminierende 0-Zeichen vorsehen
      char part1[5], part2[2], part3[6];

      strncpy(part1, myinput, 4);
      strncpy(part2, &myinput[4], 1);
      strncpy(part3, &myinput[5], 5);

      //free(myinput);

      setoutputtext(0, part1);
      setoutput(0, atoi(part2));
      setoutput(1, atoi(part3));
      setoutputtext(1, myinput);


      Vielen Dank und alles Gute.

      FMR​

      Kommentar

      Lädt...