WinCC, C-Script, Konvertierung String zu Integer?

Hallo,

die Funktion heißt atoi. Du musst allerdings mal ein wenig googeln, da die Funktion nur Konstanten akzeptiert.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
die Funktion heißt atoi. Du musst allerdings mal ein wenig googeln, da die Funktion nur Konstanten akzeptiert.

Wie kommst du auf Konstanten?
Ein "const char * str" hat in C als Funktionsparameter eine andere Bedeutung. Man kann daran erkennen dass die Funktion atoi() die Daten die man ihr übergibt nicht ändert. Man braucht also vorher keine Sicherheitskopie zu erstellen.
 
Vergib mir, meine C-Kenntnisse sind begrenzt. ;)

Trotzdem bin ich mir nicht sicher, ob die Funktion im WinCC direkt mit einer Variablen versorgt werden kann. Lass mich aber gern vom Gegenteil überzeugen.
 
Wenn man die Konvertierung einer internen 8-Bit Textvariable durchführen will, muss man sich im Skript erst mit
char *s;
s= GetTagChar(....)
den Zeiger darauf holen. Den kann man dann durchaus durch atoi() durchschicken.

Das Problem an atoi() ist aber dass es keine ordentliche Fehlerbehandlung hat. Nämlich wenn man dort "abcd" reinschickt kommt als Ergebnis 0 zurück. Wenn man "0" eingibt natürlich auch. Eine gültige Eingabe kann somit von einer ungültigen nicht unterschieden werden.

Die Funktion strtol() wäre da besser geeignet.
 
Zurück
Oben