emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Stefan Vollmar <vollmar@nf.mpg.de>
To: emacs-orgmode Mailinglist <emacs-orgmode@gnu.org>
Cc: nicholas.dokos@hp.com
Subject: Re: [PATCH] quote the real csv separator
Date: Mon, 25 Oct 2010 12:32:06 +0200	[thread overview]
Message-ID: <E0D2C042-7388-4756-8ACB-068E9D73AFA2@nf.mpg.de> (raw)
In-Reply-To: <12945.1287939175@gamaville.dokosmarshall.org>


[-- Attachment #1.1: Type: text/plain, Size: 5692 bytes --]

Dear Carsten,
dear Nick,

if you are using a standard German locale on either Windows or MacOS, MS Excel will use semicolons instead of commas as separators when saving in CSV format - so, really, it is "semicolon separated value" by default for MS products - the wisdom of this approach is questionable (and one of the many quirks you encounter when using Excel in a scientific setting with a traditional mix of several locales). The reasoning, presumably, is that the German number format uses "," as decimal separator and conflicts with also using commas to separate columns. You can simulate this by switching your operating system to international settings: German (Excel needs to be restarted to reflect these changes).

Warm regards,
 Stefan

On 24.10.2010, at 18:52, Nick Dokos wrote:

> Carsten Dominik <carsten.dominik@gmail.com> wrote:
> 
>> Hi Lukasz,
>> 
>> thanks for the patch, but I do not understand it.
>> 
>> The separator for csv is always the comma, or am I wrong here?
>> So this function should use comma, hard-coded.  The only place
>> where it is used is when orgtbl-to-csv calls the generic
>> exporter.  It does so with comma as separator and with
>> org-quote-csv-field as formatting function.
>> 
>> What use case do you have in mind?
>> 
>> - Carsten
>> 
> 
> [This is *not* a comment on the patch itself, which I have not looked at
> carefully.]
> 
> CSV started out simple and grew to be a monster (but it is still useful
> despite all that). It's not formally defined, so there are several
> variations, dialects and subdialects.  Here e.g. is the description of
> the python module that handles CSV: it defines an "excel" dialect and an
> "excel_tab" subdialect, the latter using a TAB as a delimiter. If you
> want more details and have python installed, start it up, import csv and
> then say "help(csv)".
> 
> HTH,
> Nick
> 
> ,----
> | NAME
> |     csv - CSV parsing and writing.
> | 
> | FILE
> |     /usr/lib/python2.5/csv.py
> | 
> | MODULE DOCS
> |     http://www.python.org/doc/current/lib/module-csv.html
> | 
> | DESCRIPTION
> |     This module provides classes that assist in the reading and writing
> |     of Comma Separated Value (CSV) files, and implements the interface
> |     described by PEP 305.  Although many CSV files are simple to parse,
> |     the format is not formally defined by a stable specification and
> |     is subtle enough that parsing lines of a CSV file with something
> |     like line.split(",") is bound to fail.  The module supports three
> |     basic APIs: reading, writing, and registration of dialects.
> |     
> |     
> |     DIALECT REGISTRATION:
> |     
> |     Readers and writers support a dialect argument, which is a convenient
> |     handle on a group of settings.  When the dialect argument is a string,
> |     it identifies one of the dialects previously registered with the module.
> |     If it is a class or instance, the attributes of the argument are used as
> |     the settings for the reader or writer:
> |     
> |         class excel:
> |             delimiter = ','
> |             quotechar = '"'
> |             escapechar = None
> |             doublequote = True
> |             skipinitialspace = False
> |             lineterminator = '\r\n'
> |             quoting = QUOTE_MINIMAL
> |     
> |     SETTINGS:
> |     
> |         * quotechar - specifies a one-character string to use as the 
> |             quoting character.  It defaults to '"'.
> |         * delimiter - specifies a one-character string to use as the 
> |             field separator.  It defaults to ','.
> |         * skipinitialspace - specifies how to interpret whitespace which
> |             immediately follows a delimiter.  It defaults to False, which
> |             means that whitespace immediately following a delimiter is part
> |             of the following field.
> |         * lineterminator -  specifies the character sequence which should 
> |             terminate rows.
> |         * quoting - controls when quotes should be generated by the writer.
> |             It can take on any of the following module constants:
> |     
> |             csv.QUOTE_MINIMAL means only when required, for example, when a
> |                 field contains either the quotechar or the delimiter
> |             csv.QUOTE_ALL means that quotes are always placed around fields.
> |             csv.QUOTE_NONNUMERIC means that quotes are always placed around
> |                 fields which do not parse as integers or floating point
> |                 numbers.
> |             csv.QUOTE_NONE means that quotes are never placed around fields.
> |         * escapechar - specifies a one-character string used to escape 
> |             the delimiter when quoting is set to QUOTE_NONE.
> |         * doublequote - controls the handling of quotes inside fields.  When
> |             True, two consecutive quotes are interpreted as one during read,
> |             and when writing, each quote character embedded in the data is
> |             written as two quotes
> `----
> 
> _______________________________________________
> Emacs-orgmode mailing list
> Please use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode

-- 
Dr. Stefan Vollmar, Dipl.-Phys.
Head of IT group
Max-Planck-Institut für neurologische Forschung
Gleuelerstr. 50, 50931 Köln, Germany
Tel.: +49-221-4726-213  FAX +49-221-4726-298
Tel.: +49-221-478-5713  Mobile: 0160-93874279
E-Mail: vollmar@nf.mpg.de   http://www.nf.mpg.de








[-- Attachment #1.2: smime.p7s --]
[-- Type: application/pkcs7-signature, Size: 4409 bytes --]

[-- Attachment #2: Type: text/plain, Size: 201 bytes --]

_______________________________________________
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode

  parent reply	other threads:[~2010-10-25 10:33 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-10-23 22:56 [PATCH] quote the real csv separator Łukasz Stelmach
2010-10-24 16:26 ` Carsten Dominik
2010-10-24 16:52   ` Nick Dokos
2010-10-24 19:37     ` Carsten Dominik
2010-10-25 10:32     ` Stefan Vollmar [this message]
2010-10-24 20:49   ` Łukasz Stelmach
2010-10-25  1:25     ` Bernt Hansen
2010-10-25  8:45       ` Łukasz Stelmach
2010-10-25  9:06         ` Carsten Dominik
2010-10-25 11:59           ` Łukasz Stelmach
2010-10-25  9:15   ` Sébastien Vauban

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=E0D2C042-7388-4756-8ACB-068E9D73AFA2@nf.mpg.de \
    --to=vollmar@nf.mpg.de \
    --cc=emacs-orgmode@gnu.org \
    --cc=nicholas.dokos@hp.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).