TIA REAL_TO_STRING

DCDCDC

Level-3
Beiträge
2.912
Reaktionspunkte
737
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

da ich's selbst eben gebraucht hab.. hier eine kleine Funktion, mit der man Realwerte so wie sie dargestellt werden in einen String umschreiben kann.

Ich hab bei mir die Nachkommastellen fix auf drei stehen, da ich alle meine Werte so normalisiert hab über's Projekt. Kann natürlich auch als Eingangsparameter genutzt werden um das dynamisch zu gestalten.

Der FC ist auch so aufgebaut, dass er sich wie andere Konvertierungen in SCL direkt in einer Klammer lösen lässt und somit das "Design" anderer Konvertierungen beibehält.

.scl Quellen darf ich nicht hochladen, deswegen das ganze als .txt

Screenshot 2023-11-16 135249.png
Screenshot 2023-11-16 135411.png
 

Anhänge

  • FC_REAL_TO_STRING.scl.txt
    696 Bytes · Aufrufe: 24
Zuletzt bearbeitet:
.scl Quellen darf ich nicht hochladen, deswegen das ganze als .txt
Es hat sich hier als vorteilhaft eingebürgert, an die Datei einfach eine (möglichst passende) erlaubte Dateiendung anzuhängen, und schon kann man hochladen und nach dem Download die Dateiendung auch ohne groß nachforschen wieder entfernen. Dann sagt die erste Dateiendung immer noch, was die Datei eigentlich ist, und die zweite Dateiendung bestimmt, ob man hochladen darf (und evtl. womit man die Datei alternativ öffnen kann).
Also: FC_REAL_TO_STRING.scl ---> FC_REAL_TO_STRING.scl.txt ---> hochladen ---> download ---> FC_REAL_TO_STRING.scl
 
Servus,

ganz kapieren tu ich das jetzt nicht, was der Baustein bringt.

Um sich den VAL_STRG-Aufruf mit seinen Parametern zu sparen?

Außerdem hat der Baustein (zumindest bei mir) einen Nebeneffekt.
Wenn im String an OUT schon was vorhanden ist (da z.B. ein DB-Variable angehängt ist).
Hier wird dann der String an den vorderen Stellen geändert, aber die hinteren Stellen bleiben und verfälschen das Ergebnis.
So wie hier ein Beispiel in der Hilfe von VAL_STRG:
1700491812288.png

Die ersten beiden Zeilen könntest du dir, glaube ich auch sparen, da du an SIZE nur 0 angeben müsstest.

Mein Vorschlag wäre:
Code:
#tempString :='';
VAL_STRG(IN := #IN,
         SIZE := 0,
         PREC := #constDECIMALS,
         FORMAT := 0000,
         P := 1,
         OUT => #tempString);
#FC_REAL_TO_STRING := #tempString;
 
Hallo,

das gleiche Problem hatte ich auch, weswegen ich ihn noch mal angepasst hatte.

Anbei die aktualisierte Version.
Ich hab das auch noch für weitere Datentypen gemacht/machen müssen.
 

Anhänge

  • FC_REAL_TO_STRING.scl.txt
    916 Bytes · Aufrufe: 14
Vertraue bitte nicht einer nicht initialisierten temporären Variable.

Initialisiere die Variablen lieber mit Fixwerten wie 0 oder ''.
Von mir aus kannst du dir auch eine Konstante dazu erstellen, wenn dir das lieber ist.

Und wie gesagt, die Berechnung könntest du dir meiner Meinung sparen und nur an SIZE 0 angeben.
 
Vertraue bitte nicht einer nicht initialisierten temporären Variable.

Initialisiere die Variablen lieber mit Fixwerten wie 0 oder ''.
Von mir aus kannst du dir auch eine Konstante dazu erstellen, wenn dir das lieber ist.

Und wie gesagt, die Berechnung könntest du dir meiner Meinung sparen und nur an SIZE 0 angeben.
Ich hatte vorher Konstanten drin und hatte es auf temp geändert.. bin noch ein bisschen durch von letzter Woche!
 
Ich habe bei den Werten wofür ich diese Funktion verwende in diesem Projekt keine negativen Zahlen, aber du hast natürlich recht, dass es bedacht gehört. Ich packs mir mal auf die Liste..
 
Zurück
Oben