LabVIEWForum.de - Scan Value, Punkt/Komma Problem

LabVIEWForum.de

Normale Version: Scan Value, Punkt/Komma Problem
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Leute,

habe ein kleines Problem mit Scan Value. Es gibt einen Strimg z.B. 123.456, so will ich daraus eine Float-Zahl machen. Es funktioniert nur dann, wenn ich in Regions- und Spacheinstellungen einen Punkt statt einen Komma eingestellt habe.

Ansonsten (wenn Komma in SPracheinstellungen eingestellt ist) muss ich vor dem Scan Value alle Punkte im String durch Kommas erstetzen. Dann funktioniert es auch.

Nun will ich eine universelle Funktion(VI) erstellen, wo z.B. die Systemeinstellungen abgefragt werden und abhängig davon gescannt wird.

Oder gibt es schon eine solche Funktion in LabVIEW ?

Das Problem habe ich, weil ich die Programme sowohl für Europäer als auch für Amis schreibe. Bis jetzt sollte ich immer zwei verschiedene Releases machen, es ist jetzt aber zu umschtändlich geworden.

Danke an alle !!Big Grin
Hi eugen,

ich habe mir eine Funktion geschrieben, die mittels einer division (1.2/1) feststellt, welches Dezimalzeichen eingestellt ist. Danach ersetze ich alle Zeichen im String durch das eingestellte Zeichen.
Funktioniert halt nur nicht, wenn die tausender auch noch gezeichnet werden (z.B.: 1.300,90).

Gruß
Oliver
Das folgende aus der online Hilfe zu 'Format Specifier' ist m.W. nicht allgemein bekannt, hilft Dir aber vielleicht weiter:

(erreichbar über LV-Help-->Fundamentals-->Grouping Data Using Strings, Arrays, and Clusters-->How-To-->Strings-->Format Specifiers Syntax Elements)

"Localization Codes Determines if LabVIEW uses a decimal or comma to separate the whole number from the decimal part of the number. These codes control the decimal separator for numeric output. These codes do not cause any input or output to occur. They change the decimal separator for all further inputs and outputs until they find the next %;.
%,; Comma decimal separator.
%.; Period decimal separator.
%; System default separator. "

(und es funktionieren nicht nur %,; oder %.; sondern beliebige Zeichen. Z.B. würde bei Format Into String durch %|;%f die Zahl 123|456 dargestellt)
Hi ahlers01,

das funktioniert aber nur für den Fall, das du aus einer zahl einen String formatieren willst, nicht (wie in diesem Fall) anders herum.
Oder gibt es da noch etwas, was ich nicht kenne???

Beispiel:
System Trennzeichen: ","
String: "123.456"
nach Scan From String: 123

gruß
Oliver
Oliver Frank schrieb:Hi ahlers01,
Beispiel:
System Trennzeichen: ","
String: "123.456"
nach Scan From String: 123
Oliver

Es funktioniert in beiden Richtungen
(Bei meinem System ist z.Zt. "." als System Trennzeichen gesetzt)

Beispiel:
System Trennzeichen: "."
String: "123,456"
nach Scan From String: 123 falls der format specifier "%f" lautet

ABER
Beispiel:
System Trennzeichen: "."
String: "123,456"
nach Scan From String: 123.456 falls der format specifier "%,;%f" lautet

ODER AUCH
Beispiel:
System Trennzeichen: "."
String: "123#456"
nach Scan From String: 123.456 falls der format specifier "%#;%f" lautet


Gruss
Franz
Hi Franz,

cool,

ich dachte erst, ich muß ebenso wie bei Format into String mein "Wunschtrennzeichen" angeben.

Jetzt aber noch eine Frage:
Da du das, im String benutzte, Trennzeichen kennen mußt -
gibt es auch noch die Möglichkeit, wenn du nicht weißt welches Trennzeichen der Anwender eingegeben hat, dies richtig zu konvertieren?

Beispiel:
Systemtrennzeichen: "."
String: 123,456
Ergebnis: 123.456

oder
Systemtrennzeichen: "."
String: 123.456
Ergebnis: 123.456

und das beides mit dem gleichen Format String

Gruß
Oliver
[quote=Oliver Frank]Hi Franz,

Jetzt aber noch eine Frage:
Da du das, im String benutzte, Trennzeichen kennen mußt -
Vielen Dank, es ist genau das, was mich interessiert hat.
Referenz-URLs