SA0175: Verdächtige Operation auf Zeichenkette

Funktion

Ermittelt Codestellen, die bei einer UTF-8-Kodierung verdächtig sind.

Erfasste Konstrukte

  1. Indexzugriff auf einen Single-Byte-String
    • Beispiel: sVar[2]
    • Meldung: Verdächtige Operation auf String: Indexzugriff '<expression>'
  2. Adresszugriff auf einen Single-Byte-String
    • Beispiel: ADR(sVar)
    • Meldung: Verdächtige Operation auf String: Möglicher Indexzugriff '<expression>'
  3. Aufruf einer String-Funktion der Tc2_Standard-Bibliothek außer CONCAT und LEN
    • Beispiel: FIND(sVar, 'a');
    • Meldung: Verdächtige Operation auf String: Möglicher Indexzugriff '<expression>'
  4. Einzelnes Byte-Literal, das Nicht-ASCII-Zeichen enthält
    • Beispiele:
      sVar := '99€';
      sVar := 'Ä';
    • Meldung: Verdächtige Operation auf String: Literal '<literal>' enthält Nicht-ASCII-Zeichen

Wichtigkeit

Mittel

Beispiele:

VAR
    sVar  : STRING;
    pVar  : POINTER TO STRING;
    nVar  : INT;
END_VAR
// 1) SA0175: Suspicious operation on string: Index access
sVar[2];                         // => SA0175
 
// 2) SA0175: Suspicious operation on string: Possible index access
pVar := ADR(sVar);               // => SA0175
 
// 3) SA0175: Suspicious operation on string: Possible index access
nVar := FIND(sVar, 'a');         // => SA0175
 
// 4) SA0175: Suspicious operation on string: Literal '<...>' contains Non-ASCII character
sVar := '99€';                   // => SA0175
sVar := 'Ä';                     // => SA0175