<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Betreff: Wrong NumberGroupSeparator at String.Format() with German ACADM 2015 in .NET Forum</title>
    <link>https://forums.autodesk.com/t5/net-forum/wrong-numbergroupseparator-at-string-format-with-german-acadm/m-p/5445872#M42032</link>
    <description>&lt;P&gt;I had some more time and ported the&amp;nbsp;&lt;A target="_blank" href="http://adndevblog.typepad.com/autocad/2012/06/autocad-keeps-overriding-currentculture-and-currentuiculture.html"&gt;AutoCAD DevBlog&lt;/A&gt; code to VB.net:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;Imports System.Globalization
Imports System.Threading

''' &amp;lt;summary&amp;gt;
''' ...
''' &amp;lt;/summary&amp;gt;
''' &amp;lt;remarks&amp;gt;&lt;A target="_blank" href="https://forums.autodesk.com/"&gt;http://adndevblog.typepad.com/autocad/2012/06/autocad-keeps-overriding-currentculture-and-currentuiculture.html&amp;lt;/remarks&amp;gt;&lt;/A&gt;
Public Class MyCultureOverride

    Private _PrevCulture As CultureInfo
    Private _PrevUICulture As CultureInfo

    Friend Shared ReadOnly CultureOverride As CultureInfo = CultureInfo.CreateSpecificCulture("de-DE")

#Region "New"
    ''' &amp;lt;summary&amp;gt;
    ''' ...
    ''' &amp;lt;/summary&amp;gt;
    Private Sub New()
        If CultureOverride IsNot Nothing Then
            _PrevCulture = Thread.CurrentThread.CurrentCulture
            _PrevUICulture = Thread.CurrentThread.CurrentUICulture

            Thread.CurrentThread.CurrentCulture = CultureOverride
            Thread.CurrentThread.CurrentUICulture = CultureOverride
        End If
    End Sub
#End Region

    ''' &amp;lt;summary&amp;gt;
    ''' ...
    ''' &amp;lt;/summary&amp;gt;
    Private Sub Restore()
        If _PrevCulture IsNot Nothing AndAlso _PrevUICulture IsNot Nothing Then
            Thread.CurrentThread.CurrentCulture = _PrevCulture
            Thread.CurrentThread.CurrentUICulture = _PrevUICulture
        End If
    End Sub

    ''' &amp;lt;summary&amp;gt;
    ''' ...
    ''' &amp;lt;/summary&amp;gt;
    ''' &amp;lt;param name="useAction"&amp;gt;Aktion&amp;lt;/param&amp;gt;
    Public Shared Sub Use(useAction As Action)
        If useAction Is Nothing Then
            Throw New ArgumentNullException("useAction")
        End If

        Dim oCultureOverride = New MyCultureOverride()

        Try
            useAction()
        Finally
            oCultureOverride.Restore()
        End Try
    End Sub

End Class&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You can test it with the following code:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&amp;lt;CommandMethod("MYTEST1")&amp;gt; _
Public Sub Test1Command()
    Application.DocumentManager.MdiActiveDocument.Editor.WriteMessage(String.Format("WITHOUT MyCultureOverride = {0:N2}", 1234))
End Sub

&amp;lt;CommandMethod("MYTEST2")&amp;gt; _
Public Sub Test2Command()
    MyCultureOverride.Use(AddressOf Test2CommandAction)
End Sub

Private Sub Test2CommandAction()
    Application.DocumentManager.MdiActiveDocument.Editor.WriteMessage(String.Format("With MyCultureOverride = {0:N2}", 1234))
End Sub&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;I hope it is the correct way and I need less changes at the code instead switch all numbers to ToString(own culture).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks for your help! &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;</description>
    <pubDate>Wed, 17 Dec 2014 07:56:20 GMT</pubDate>
    <dc:creator>tim_gerundt</dc:creator>
    <dc:date>2014-12-17T07:56:20Z</dc:date>
    <item>
      <title>Wrong NumberGroupSeparator at String.Format() with German ACADM 2015</title>
      <link>https://forums.autodesk.com/t5/net-forum/wrong-numbergroupseparator-at-string-format-with-german-acadm/m-p/5429749#M42027</link>
      <description>&lt;P&gt;I have a AutoCAD-AddIn which run in the past with ACADM 2013 and is now compiled for ACADM 2015. Unfortunately I have now problems with the number group separator. The following VB source code shows “&lt;STRONG&gt;1,234 Suchergebnisse&lt;/STRONG&gt;” (but we use “&lt;STRONG&gt;.&lt;/STRONG&gt;” instead “&lt;STRONG&gt;,&lt;/STRONG&gt;” in Germany):&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;Dim iCount As Integer = 1234&lt;BR /&gt;
Debug.Print("{0:N0} Suchergebnisse", iCount)&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;The same source code works under ACADM 2013 without problems! And I have NO problems in other programs (for example Excel).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I know meanwhile that “&lt;STRONG&gt;Globalization.CultureInfo.CurrentCulture&lt;/STRONG&gt;” is set correct to German, but the number group separator (“&lt;STRONG&gt;Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberGroupSeparator&lt;/STRONG&gt;”) use the wrong char.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If I set the NumberGroupSeparator manually to “&lt;STRONG&gt;.&lt;/STRONG&gt;” at the initialization from the AddIn the code works like expected:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberGroupSeparator = "."&lt;/PRE&gt;&lt;P&gt;Is this a problem for AutoCAD? Or is there a option, where I can set the separator in AutoCAD?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks for your help!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Greetings,&lt;BR /&gt;Tim Gerundt&lt;/P&gt;</description>
      <pubDate>Tue, 02 Dec 2014 11:17:23 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/wrong-numbergroupseparator-at-string-format-with-german-acadm/m-p/5429749#M42027</guid>
      <dc:creator>tim_gerundt</dc:creator>
      <dc:date>2014-12-02T11:17:23Z</dc:date>
    </item>
    <item>
      <title>Betreff: Wrong NumberGroupSeparator at String.Format() with German ACADM 2015</title>
      <link>https://forums.autodesk.com/t5/net-forum/wrong-numbergroupseparator-at-string-format-with-german-acadm/m-p/5430048#M42028</link>
      <description>&lt;P&gt;As example source code you must use the following:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;Dim iCount As Integer = 1234

Debug.Print(String.Format("{0:N2} Suchergebnisse", iCount))&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It seems, that&amp;nbsp;&lt;STRONG&gt;Debug.Print("{0:N0} Suchergebnisse", iCount)&lt;/STRONG&gt; never use the CurrentCulture.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I tested my problem with a windows form, so I don't notice the bug in the example code. &lt;span class="lia-unicode-emoji" title=":winking_face:"&gt;😉&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;But the problem remain, it was only a typo in my example code!&lt;/P&gt;</description>
      <pubDate>Tue, 02 Dec 2014 15:50:08 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/wrong-numbergroupseparator-at-string-format-with-german-acadm/m-p/5430048#M42028</guid>
      <dc:creator>tim_gerundt</dc:creator>
      <dc:date>2014-12-02T15:50:08Z</dc:date>
    </item>
    <item>
      <title>Betreff: Wrong NumberGroupSeparator at String.Format() with German ACADM 2015</title>
      <link>https://forums.autodesk.com/t5/net-forum/wrong-numbergroupseparator-at-string-format-with-german-acadm/m-p/5436908#M42029</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Yes,&amp;nbsp;AutoCAD does reset the number group separator.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://adndevblog.typepad.com/autocad/2012/06/autocad-keeps-overriding-currentculture-and-currentuiculture.html" target="_blank"&gt;http://adndevblog.typepad.com/autocad/2012/06/autocad-keeps-overriding-currentculture-and-currentuiculture.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;By specifying a NumberFormat to use with the "ToString" method, you can format it differently&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("de-DE");
ed.WriteMessage(String.Format("{0}{1}", Environment.NewLine, iCount.ToString("N", ci.NumberFormat)));&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Regards,&lt;/P&gt;
&lt;P&gt;Balaji&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 09 Dec 2014 06:07:02 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/wrong-numbergroupseparator-at-string-format-with-german-acadm/m-p/5436908#M42029</guid>
      <dc:creator>Balaji_Ram</dc:creator>
      <dc:date>2014-12-09T06:07:02Z</dc:date>
    </item>
    <item>
      <title>Betreff: Wrong NumberGroupSeparator at String.Format() with German ACADM 2015</title>
      <link>https://forums.autodesk.com/t5/net-forum/wrong-numbergroupseparator-at-string-format-with-german-acadm/m-p/5437314#M42030</link>
      <description>&lt;P&gt;Hello Balaji,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;thank for your answer and the link!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Change every String.Format() and .ToString() functions in the large source code base&amp;nbsp;is no option for me. Specially if you know, that it worked with ACADM 2013 without change.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I currently test the follwing code and hope, that it don't break AutoCAD:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;Public Sub Initialize() Implements Autodesk.AutoCAD.Runtime.IExtensionApplication.Initialize
    Dim oGermanCulture As New Globalization.CultureInfo("de-DE")

    Threading.Thread.CurrentThread.CurrentCulture = oGermanCulture
    Threading.Thread.CurrentThread.CurrentUICulture = oGermanCulture
End Sub&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Greetings,&lt;/P&gt;&lt;P&gt;Tim&lt;/P&gt;</description>
      <pubDate>Tue, 09 Dec 2014 13:54:04 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/wrong-numbergroupseparator-at-string-format-with-german-acadm/m-p/5437314#M42030</guid>
      <dc:creator>tim_gerundt</dc:creator>
      <dc:date>2014-12-09T13:54:04Z</dc:date>
    </item>
    <item>
      <title>Betreff: Wrong NumberGroupSeparator at String.Format() with German ACADM 2015</title>
      <link>https://forums.autodesk.com/t5/net-forum/wrong-numbergroupseparator-at-string-format-with-german-acadm/m-p/5438378#M42031</link>
      <description>&lt;P&gt;Hello Tim,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Yes,&amp;nbsp;including the formatting change in all your code can be quite a task.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;As mentioned in that blog post, it is possible that AutoCAD can reset the settings to what it was.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Unfortunately, it will not be possible for me to confirm if that will happen.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Using the NumberFormat with ToString is a sure way of formatting it as per your format.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Regards,&lt;/P&gt;
&lt;P&gt;Balaji&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 10 Dec 2014 05:01:15 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/wrong-numbergroupseparator-at-string-format-with-german-acadm/m-p/5438378#M42031</guid>
      <dc:creator>Balaji_Ram</dc:creator>
      <dc:date>2014-12-10T05:01:15Z</dc:date>
    </item>
    <item>
      <title>Betreff: Wrong NumberGroupSeparator at String.Format() with German ACADM 2015</title>
      <link>https://forums.autodesk.com/t5/net-forum/wrong-numbergroupseparator-at-string-format-with-german-acadm/m-p/5445872#M42032</link>
      <description>&lt;P&gt;I had some more time and ported the&amp;nbsp;&lt;A target="_blank" href="http://adndevblog.typepad.com/autocad/2012/06/autocad-keeps-overriding-currentculture-and-currentuiculture.html"&gt;AutoCAD DevBlog&lt;/A&gt; code to VB.net:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;Imports System.Globalization
Imports System.Threading

''' &amp;lt;summary&amp;gt;
''' ...
''' &amp;lt;/summary&amp;gt;
''' &amp;lt;remarks&amp;gt;&lt;A target="_blank" href="https://forums.autodesk.com/"&gt;http://adndevblog.typepad.com/autocad/2012/06/autocad-keeps-overriding-currentculture-and-currentuiculture.html&amp;lt;/remarks&amp;gt;&lt;/A&gt;
Public Class MyCultureOverride

    Private _PrevCulture As CultureInfo
    Private _PrevUICulture As CultureInfo

    Friend Shared ReadOnly CultureOverride As CultureInfo = CultureInfo.CreateSpecificCulture("de-DE")

#Region "New"
    ''' &amp;lt;summary&amp;gt;
    ''' ...
    ''' &amp;lt;/summary&amp;gt;
    Private Sub New()
        If CultureOverride IsNot Nothing Then
            _PrevCulture = Thread.CurrentThread.CurrentCulture
            _PrevUICulture = Thread.CurrentThread.CurrentUICulture

            Thread.CurrentThread.CurrentCulture = CultureOverride
            Thread.CurrentThread.CurrentUICulture = CultureOverride
        End If
    End Sub
#End Region

    ''' &amp;lt;summary&amp;gt;
    ''' ...
    ''' &amp;lt;/summary&amp;gt;
    Private Sub Restore()
        If _PrevCulture IsNot Nothing AndAlso _PrevUICulture IsNot Nothing Then
            Thread.CurrentThread.CurrentCulture = _PrevCulture
            Thread.CurrentThread.CurrentUICulture = _PrevUICulture
        End If
    End Sub

    ''' &amp;lt;summary&amp;gt;
    ''' ...
    ''' &amp;lt;/summary&amp;gt;
    ''' &amp;lt;param name="useAction"&amp;gt;Aktion&amp;lt;/param&amp;gt;
    Public Shared Sub Use(useAction As Action)
        If useAction Is Nothing Then
            Throw New ArgumentNullException("useAction")
        End If

        Dim oCultureOverride = New MyCultureOverride()

        Try
            useAction()
        Finally
            oCultureOverride.Restore()
        End Try
    End Sub

End Class&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You can test it with the following code:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&amp;lt;CommandMethod("MYTEST1")&amp;gt; _
Public Sub Test1Command()
    Application.DocumentManager.MdiActiveDocument.Editor.WriteMessage(String.Format("WITHOUT MyCultureOverride = {0:N2}", 1234))
End Sub

&amp;lt;CommandMethod("MYTEST2")&amp;gt; _
Public Sub Test2Command()
    MyCultureOverride.Use(AddressOf Test2CommandAction)
End Sub

Private Sub Test2CommandAction()
    Application.DocumentManager.MdiActiveDocument.Editor.WriteMessage(String.Format("With MyCultureOverride = {0:N2}", 1234))
End Sub&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;I hope it is the correct way and I need less changes at the code instead switch all numbers to ToString(own culture).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks for your help! &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 17 Dec 2014 07:56:20 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/wrong-numbergroupseparator-at-string-format-with-german-acadm/m-p/5445872#M42032</guid>
      <dc:creator>tim_gerundt</dc:creator>
      <dc:date>2014-12-17T07:56:20Z</dc:date>
    </item>
  </channel>
</rss>

