Using semicolons instead of commas in European format CSV files

I live in France and have been using Panorama since forever.

Every month I import a file from my bank’s site (a major French bank, actually the ex-state bank) with the activity on my account for the last month. I usually ask for a TSV file but this time I requested a “CSV” file. And I confirm that, indeed, the separator is a semicolon, which is logical as the decimal point is a comma, and there are lots of them.

Hope this helps.

Ellen

As a French Canadian user, I avoid this issue because my text files are always saved with the tab-delimited option. From the following screen shots, you will understand why.

  • CSV1 gives an idea of the original data.
  • CSV2 shows the “save as” options that I used (1, 2, 3, 4).
  • CSV3 compares the results of importing these files in Panorama X.

Hope this helps.

Thanks,
Nelson

CSV is standardized by RFC 4180 which clearly only uses the COMMA token as separator.

German numbers use a decimal point but a comma as thousands separator. The Dutch reverse this and the Swiss use single quotes for thousands. Neat. Needless to say Europe is a mess at least in this respect (they do use the handy metric system god bless them). No idea what Asia or Australia does.

So in other words you need to be prepared for anything and write or configure your software accordingly

RFC 4180 itself clearly states that it does not specify a standard of any kind. It’s just some notes that somebody put together. It is definitely NOT exactly followed by major software vendors including Microsoft, etc.

In the four years that this discussion was paused, Panorama was changed to so that by default it will change the delimiters based on the number separators specified in the Language & Region system settings.

If the decimal point is set to a comma, then Panorama uses semicolons as the default field separator, otherwise, it uses commas. This seems to have solved the problem. If you don’t want to use the defaults, you can write your own code and specify exactly what you want with the importtext statement.