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

Ergebnis 1 bis 5 von 5

Thema: Zugriff auf einzelne Zeichen in einem String (Array)

  1. #1
    Registriert seit
    24.02.2010
    Beiträge
    25
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich habe einen DB mit einem String:
    Code:
    Message : STRING[20] := 'TETTSTSAT'
    Nun kann ich in ja auf einzelne Zeichen zugreifen, da ein String ja ein Array ist:
    Code:
    CALL  "BLKMOV"
           SRCBLK :="DB_MESSAGES".Message[4]
           RET_VAL:=
           DSTBLK :=
    In Feld 4 steht das 2. Zeichen (1+2 sind Länge und benutzte Länge). Funktioniert wunderbar



    Nun habe ich aber ein Array von Strings in einem DB. Wie kann ich darauf zugreifen?

    So funktionierts leider nicht:
    Code:
    CALL  "BLKMOV"
           SRCBLK :="DB_MESSAGES".arrayMessage[1].[4]
           RET_VAL:=
           DSTBLK :=
    Zitieren Zitieren Zugriff auf einzelne Zeichen in einem String (Array)  

  2. #2
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.191
    Danke
    923
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    So sollte es funktionieren:
    Code:
    CALL  "BLKMOV"
           SRCBLK :="DB_MESSAGES".arrayMessage[1, 4]
           RET_VAL:=
           DSTBLK :=
    Dir ist klar, daß Du damit nur genau 1 Byte kopierst? Unabhängig davon, ob dieses Byte überhaupt Bestandteil der aktuellen Stringlänge ist?

    Harald
    Geändert von PN/DP (19.07.2012 um 11:19 Uhr)
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  3. Folgender Benutzer sagt Danke zu PN/DP für den nützlichen Beitrag:

    shotar (19.07.2012)

  4. #3
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.191
    Danke
    923
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Zitat Zitat von shotar Beitrag anzeigen
    Code:
    CALL  "BLKMOV"
           SRCBLK :="DB_MESSAGES".Message[4]
           RET_VAL:=
           DSTBLK :=
    In Feld 4 steht das 2. Zeichen (1+2 sind Länge und benutzte Länge). Funktioniert wunderbar
    In Message[4] steht allerdings das 4. Zeichen des Strings (das ist das 6. Byte). Auf die ersten beiden Byte (max. Länge und akt. Länge) kann mit der Array-Schreibweise nicht zugegriffen werden.

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  5. #4
    Avatar von shotar
    shotar ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    24.02.2010
    Beiträge
    25
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    jo danke. Geht in AWL aber nicht in SCL

  6. #5
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.401 Danke für 2.001 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    für die String-Bearbeitung, gerade mit SCL, gibt es dann ja noch die dafür gedachten Siemens-FC's LEFT, RIGHT, MID, etc. - vielleicht dazu auch mal die SCL-Hilfe befragen ...

    Gruß
    Larry

Ähnliche Themen

  1. Zugriff auf einzelne Bit's TIA-Portal
    Von MarkusP im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 03.09.2016, 21:30
  2. absoluter Zugriff auf einzelne Bits (S7-1200)
    Von zloyduh im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 18.01.2012, 17:49
  3. Zugriff auf einzelne bits eines Realwerts
    Von Züttu im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 12.01.2011, 08:22
  4. Zugriff auf DB(String) über Pointer
    Von Thomas R im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 14.03.2007, 21:04
  5. Einzelne Zeichen über CP341 empfangen
    Von Malte im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 18.11.2003, 23:35

Lesezeichen

Berechtigungen

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