Closed svenruetz closed 9 years ago
Problem might be, that the Option tolerance is preset using a string:
[Option('t', "tolerance", DefaultValue = "0.002", Required = false, HelpText = "Set the width of the tube at discontinuity in x-direction [Default is 0.002].")]
public string Tolerance { get; set; }
Removing the default value should fix the issue.
Unfortunately that solution is still locale dependent, which in our case causes problems since we use CSV Compare from within our software, i.e. the calls are done from scripts. IMHO it's bad design to have a program command line dependent on the users locale settings. This might be a separate issue though.
Can you tell me which locale fails and which settings? The code already implemented in csv compare for parsing the value for the tolerance handles "0.002", "0,002" and "2e-3" and should not depent on locale settings; I'm going to check this. The program should of course not be locale dependent; the problem here (I think) was the hard coded string for the default value. Without this hard coded value, the program should correctly parse the tolerance in any of the 3 formattings.
Ok that is good to hear, then we are on the same page. However the current behaviour that we see with Christian Andersson's (from MA ticket linked above) build of r8061 is strange, it really looks like if it is locale dependent. The computers that I have problems with have Windows 7 with Swedish number/date formatting, i.e. if you go Control Panel -> Region and Language -> Additional settings... There the decimal symbol is a comma (,). If we try to run CSV Compare without -t set we get an error. Presumably since the default value is 0.002 and given the language settings that is not a valid number. if -t is specified to i.e. 0,001 then the error goes away and the tolerance seems to be correct. Also, it works as exepcted if I change the decimal symbol in the language settings to a dot.
So sorry to say it but it really seems as if computer locale affects the program.
I found the issue. It was a bug in the code. I used the commandline option directly and not the parsed object. The default value can stay as it is. I debugged it using swedish locale settings on my computer.
Nice :) Thank you for the help.
from: https://trac.modelica.org/Modelica/ticket/1646
I tried running the Compare tool (r8061) with a simple csv file using the command
This however gives an error
where the problematic part seems to be the tolerance as the below command works fine,
This needs to be fixed so that it works out of the box. Additionally this dependency on the locale makes it difficult to use the Compare tool in other tools.