| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | | |  | PNY präsentiert die PRO Elite™ High Endurance microSD-Flash-Speicherkarten für Videoüberwachung und kontinuierliche Aufzeichnung, eine Pressemitteilung
|
Autor
|
Thema: regional settings, locale (948 mal gelesen)
|
Christian Blei Mitglied
 
 Beiträge: 124 Registriert: 23.06.2008 Thinkpad T60p, 4GB XP,Autocad 2010, ProStructures V8i 2, VBA, VB.NET,
|
erstellt am: 22. Mrz. 2010 18:23 <-- editieren / zitieren --> Unities abgeben:         
Hi all, ich habe ein Tool gebaut, das auch in England laufen soll. Ich übernehme aus einer .txt Zahlen, die ich dann in doubles umwandle. Im textstring habe ich zB. 121.5, das wandle ich erstmal um in 121,5 und lasse mir dann den double geben (cdbl). In England läuft der Code dann nicht mehr, da die regional settings für Zahlen anders sind. Das Komma wir ignoriert, da englische Notation zB. 123,4567,3456,1234.65........ist. Was kann ich da machen? Am Besten wäre ja, ich könnte die locale Einstellung abfragen und dem endsprechend meine Strings editieren. Kennt ihr da was? Gruss, Christian Blei Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 22. Mrz. 2010 20:08 <-- editieren / zitieren -->
Hi, probier in Deinem Code einfach: Code: Dim tDecPntChar as String dim tNonDecPntChar as String if val("123.12") = 123.12 then tDecPntChar = "." tNonDecPntChar = "," elseif val("123,12") = 123.12 then tDecPntChar = "," tNonDecPntChar = "." else 'hier muss gehandelt werden, Fehlermeldung oder ähnliches End If
Und im folgenden Code kannst Du dann (wenn Du Zahlenwerte als String <tStr> bekommst):
Code: dim tDouble as Double tDoube = val(replace(tStr,tNonDecPntChar,tDecPntChar))
- alfred - ------------------ www.hollaus.at |
Christian Blei Mitglied
 
 Beiträge: 124 Registriert: 23.06.2008 Thinkpad T60p, 4GB XP,Autocad 2010, ProStructures V8i 2, VBA, VB.NET,
|
erstellt am: 22. Mrz. 2010 23:32 <-- editieren / zitieren --> Unities abgeben:         
|
Ex-Mitglied
|
erstellt am: 22. Mrz. 2010 23:37 <-- editieren / zitieren -->
Hi, schau Dir sicherheitshalber mal den Unterschied zwischen CDbl und Val an. Ich merk mir's nicht und muss selbst immer wieder von neuem probieren. Eines der beiden hängt an der landesspez. (währungsspez.) Windowseinstellung, das andere nicht. Aber welches jetzt welches ist ??? - alfred - ------------------ www.hollaus.at |

| |
Christian Blei Mitglied
 
 Beiträge: 124 Registriert: 23.06.2008 Thinkpad T60p, 4GB XP,Autocad 2010, ProStructures V8i 2, VBA, VB.NET,
|
erstellt am: 23. Mrz. 2010 09:31 <-- editieren / zitieren --> Unities abgeben:         
Hi Alfred, gute Erinnerung. (da war doch was.....) aus der vba Hilfe:
> Note: The Val function recognizes only the period (.) as a valid decimal separator. When different decimal separators are used, as in international applications, use CDbl instead to convert a string to a number. <
Prüfung also mit CDbl. Gruss Christian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |