| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Dezimaltrennzeichen der Ländereinstellungen abfragen (4942 mal gelesen)
|
Einstein Mitglied Zerspanungsmechaniker-Drehtechnik
Beiträge: 94 Registriert: 20.02.2005
|
erstellt am: 26. Aug. 2007 22:31 <-- editieren / zitieren --> Unities abgeben:
Hallo Forum, hat jemand eine Idee, wie man das Dezimaltrennzeichen der Ländereinstellungen/Gebietsschemas abfragt?
------------------ MfG A. Einstein P.S. Rechtschreibefehler sind gewollt und dienen der allgemeinen Belustigung! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9732 Registriert: 01.12.2003 AutoCAD 2.5 - 2022, LDD, MDT, RD, ADT, Civil Inventor AIP 4-11, 2008 -2022 Win 10
|
erstellt am: 27. Aug. 2007 00:22 <-- editieren / zitieren --> Unities abgeben: Nur für Einstein
Code: ' Get the number format of the current culture that is being used. Dim ni As System.Globalization.NumberFormatInfo = My.Application.Culture.NumberFormat() ' Get the DateTimeFormat of the current culture. Dim dti As System.Globalization.DateTimeFormatInfo = My.Application.Culture.DateTimeFormat() ' Display various culture display formats MsgBox("Number Decimal Separator is: [" + ni.NumberDecimalSeparator + "]") MsgBox("Number Group Separator is: [" + ni.NumberGroupSeparator + "]") MsgBox("Time Pattern is: [" + dti.LongTimePattern + "]")
So was? Quelle: http://support.microsoft.com/kb/914356 ------------------ Mit freundlichem Gruß Udo Hübner Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fuchsi Mitglied Programmierer c#.net Datawarehouse
Beiträge: 1201 Registriert: 14.10.2003 AutoCad Version 2012 deu/enu <P>Windows 7 64bit
|
erstellt am: 27. Aug. 2007 15:03 <-- editieren / zitieren --> Unities abgeben: Nur für Einstein
|
RoSiNiNo Mitglied Konstrukteur
Beiträge: 1126 Registriert: 09.10.2002 Acad 2011-deutsch, Express Tools 3ds Max 2010 Win 7-Professional HP Workstation Z400, 6GB GeForce GTX 470
|
erstellt am: 10. Apr. 2013 14:43 <-- editieren / zitieren --> Unities abgeben: Nur für Einstein
Es ist zwar schon ein sehr altes Thema. Falls jemand aber mit dem Umstieg auf AutoCAD 2014 vielleicht nochmal auf dieses Problem trifft, hier die Lösung die ich jetzt verwende. Code: Public Function funDouble(Wert As String) As Double Dim Test As Double Test = 1 / 2 If InStr(Test, ".") > 0 Then If InStr(Wert, ".") > 0 Then funDouble = Wert Else funDouble = Replace(Wert, ",", ".") End If Else If InStr(Wert, ",") > 0 Then funDouble = Wert Else funDouble = Replace(Wert, ".", ",") End If End If End Function
------------------ Roland Feletic PCD ZT-GmbH Autodesk Building Design Suite Premium 2013 Win 7-Professional HP Workstation Z400, 6GB GeForce GTX 470 [Diese Nachricht wurde von RoSiNiNo am 10. Apr. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KMassler Ehrenmitglied V.I.P. h.c. CAD Admin + Mädchen für Alles...
Beiträge: 2657 Registriert: 06.11.2000
|
erstellt am: 18. Okt. 2016 10:15 <-- editieren / zitieren --> Unities abgeben: Nur für Einstein
Ich wärme das mal auf, da ich ein dazu passendes Problem habe. Die beiden oben genannten Lösungen funktionieren- im Prinzip. Mein Problem: Ich habe bei veschiedenen Programmen dem User die Möglichkeit gegeben, die Sprache zu wechseln. z.B. mit My.Application.ChangeUICulture("en-GB") My.Application.ChangeCulture("en-GB") Dabei wird dann aber eben nicht nur die Anzeigesprache der Forms gewechselt, sondern die gesamte Culture-Einstellung des Programms. Und damit habe ich das Problem, dass das Dezimalzeichen nicht mehr mit dem System-Dezimalzeichen übereinstimmt. Die beiden o.g. Lösungen ermitteln nicht das System-Dezimalzeichen, sondern das Dezimalzeichen der verwendeten Culture im Programm. Ich brauche aber tatsächlich das Dezimaltrennzeichen vom installierten Windows. Ich habe hier einen alten VB5/VB6-Tipp gefunden, da wird die API-Funktion GetLocalInfo verwendet. Ich habe vesucht, das 1:1 in VB.Net zu übernehmen, stoße aber auf das Problem, dass in der Function GetEntry(...) die Variable Buffer verwendet wird, bevor sie einen Wert hat, was zu einer Ausnahme führt. Da steh ich jetzt auf dem Schlauch. Kann mir hier jemand weiter helfen? Oder hat jemand ne Idee, wie ich an das Syste-Dezimalzeichen komme, unabhängig von der im Programm verwendeten Sprache und Kultur? [Edit] Auch CultureInfo.InstalledUICulture.NumberFormat.NumberDecimalSeparator funktioniert nicht. Hier bekomme ich immer den Punkt als Dezimalzeichen. Vermutlich, da unsere Systeme immer als englisches Windows mit deutschen, französischem oder sonstigen Language-Pack installiert wurden [/Edit] ------------------ Klaus http://www.al-ko.com/de/fahrzeugtechnik/ | mein Gästebuch [Diese Nachricht wurde von KMassler am 18. Okt. 2016 editiert.] [Diese Nachricht wurde von KMassler am 18. Okt. 2016 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RoSiNiNo Mitglied Konstrukteur
Beiträge: 1126 Registriert: 09.10.2002 Acad 2011-deutsch, Express Tools 3ds Max 2010 Win 7-Professional HP Workstation Z400, 6GB GeForce GTX 470
|
erstellt am: 18. Okt. 2016 11:54 <-- editieren / zitieren --> Unities abgeben: Nur für Einstein
Meinst du vielleicht soetwas? Code: Public Function funDecimalSeperator() As String 'returns the current decimal seperator Dim Test As Double Test = 1 / 2 If InStr(Test, ".") > 0 Then funDecimalSeperator = "." Else funDecimalSeperator = "," End IfEnd Function
------------------ Roland Feletic PCD ZT-GmbH Autodesk Building Design Suite Premium 2014 Win 7-Professional HP Workstation Z400, 6GB GeForce GTX 470 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|