Manuel Skorupka Posted January 20, 2022 Share Posted January 20, 2022 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 Quote Link to comment Share on other sites More sharing options...
HolWo Posted January 26, 2022 Share Posted January 26, 2022 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 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.