Jump to content

Zeichen in String ersetzen


Recommended Posts

Hallo, ich möchte eine Zeichen in einem String durch ein anderes ersetzen wie geht das? Gibt es eine Funktion hierfür?

Genauer gesagt möchte ich eine Float-Variable zu einem String schreiben (Geht auch  mit strfmt Funktion) und  über das ICOM versenden. Leider wandelt DASYLab den "." der Variable in ein "," um. Dies gilt es zu ersetzten.

Vielen Dank schon mal im Vorraus

Screenshot 2022-01-20 080855.png

Link to comment
Share on other sites

Hallo!

(1) Die Umwandlungsfunktion verwendet das Dezimaltrennzeichen, welches von Windows als Standard vorgegeben ist. In den EInstellungen zur Region in der WIndows Systemsteuerung können Sie dies von Komma zu Punkt ändern.

(2) Im RS232/ICom-Ausgang lassen sich weitere Formatanweisungen angeben, um die zu sendenden Zeichen anzupassen (Hilfe des Moduls: Formatanweisungen für die Datenausgabe).
Mit [a5,2] bzw. [a5.2] (Komma vs. Punkt) kann gesteuert werden, welcher Dezimaltrenner genutzt wird, wenn eine Zahl mit fünf Stellen, davon zwei Nachkommastellen, vor dem Senden formatiert werden soll.

Hier müsste die zu sendende Zahl über den Eingang des Moduls geliefert werden, diese wird dann in den Platzhalter des Formatstrings eingesetzt (z.B. [a5.2)]. Vor und nach dem Platzhalter im Formatstring des Moduls können natürlich weitere "Dekorationen" hinzugefügt werden, um z.B. einen SCPI-Befehl mit variablem Bestandteil zu vervollständigen.

(3) Mit dem Skriptmodul könnte man einen globalen String lesen und enthaltene Zeichen ersetzen. Das "Innenleben" eines Skriptmoduls wird mit der Sprache Python programmiert.

Ich habe ein Beispielskript angehängt (ab DASYLab 13), das das Prinzip des Skriptmoduls grob demonstriert: hier wird der Inhalt eines Strings darauf geprüft, ob dieser als Dateiname zu gebrauchen ist. DASYLabs globale Strings können freien Text aufnehmen, aber der Inhalt eines Strings kann natürlich Zeichen enthalten, die nicht in Windows-Dateien/Verzeichnissen vorkommen dürfen, bspw. der Doppelpunkt.
Mit dem Schalter kann die Prüfung ausgelöst werden: dies liest einen globalen String, prüft diesen und schreibt das Ergebnis in einen anderen String.

Auf ähnliche Weise könnten Sie vor dem Senden eines globalen Strings zunächst mit einem entsprechend angepassten Skriptmodul den Inhalt eines Strings anpassen, das Dezimaltrennzeichen austauschen, und dann die aufbereiteten String senden.

Im Konfigurationsdialog des Skriptmoduls können Sie über "Speichern" das im Modul enthaltene Skript als Datei z.B. auf dem Desktop abspeichern und mit einem Texteditor ändern. Anschließend muss das Skript wieder in das Modul mittels "Laden"-Schalter hineingeladen werden.

validstring.DSB

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...