From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefan Vollmar Subject: Re: [PATCH] quote the real csv separator Date: Mon, 25 Oct 2010 12:32:06 +0200 Message-ID: References: <87mxq4wman.fsf@kotik.lan> <57E157F5-BDE7-4431-B15F-8EE52E571677@gmail.com> <12945.1287939175@gamaville.dokosmarshall.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1324372016==" Return-path: Received: from [140.186.70.92] (port=48059 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PAKLx-0005Fq-W5 for emacs-orgmode@gnu.org; Mon, 25 Oct 2010 06:33:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PAKLZ-0006Xs-K9 for emacs-orgmode@gnu.org; Mon, 25 Oct 2010 06:32:10 -0400 Received: from mail.nf.mpg.de ([134.107.209.50]:50830) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PAKLZ-0006Xf-76 for emacs-orgmode@gnu.org; Mon, 25 Oct 2010 06:32:09 -0400 Received: from jeeves.mpin-koeln.mpg.de (jeeves.mpin-koeln.mpg.de [134.107.216.31]) by mail.nf.mpg.de (Sun Java(tm) System Messaging Server 6.3-8.03 (built Apr 24 2009; 32bit)) with ESMTPSA id <0LAU00H9AD9QGK00@mail.nf.mpg.de> for emacs-orgmode@gnu.org; Mon, 25 Oct 2010 12:32:14 +0200 (MEST) In-reply-to: <12945.1287939175@gamaville.dokosmarshall.org> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode Mailinglist Cc: nicholas.dokos@hp.com --===============1324372016== Content-type: multipart/signed; boundary=Apple-Mail-286-457881531; protocol="application/pkcs7-signature"; micalg=sha1 --Apple-Mail-286-457881531 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=iso-8859-1 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 wrote: >=20 >> Hi Lukasz, >>=20 >> thanks for the patch, but I do not understand it. >>=20 >> 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. >>=20 >> What use case do you have in mind? >>=20 >> - Carsten >>=20 >=20 > [This is *not* a comment on the patch itself, which I have not looked = at > carefully.] >=20 > 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)". >=20 > HTH, > Nick >=20 > ,---- > | NAME > | csv - CSV parsing and writing. > |=20 > | FILE > | /usr/lib/python2.5/csv.py > |=20 > | MODULE DOCS > | http://www.python.org/doc/current/lib/module-csv.html > |=20 > | 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. > | =20 > | =20 > | DIALECT REGISTRATION: > | =20 > | 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: > | =20 > | class excel: > | delimiter =3D ',' > | quotechar =3D '"' > | escapechar =3D None > | doublequote =3D True > | skipinitialspace =3D False > | lineterminator =3D '\r\n' > | quoting =3D QUOTE_MINIMAL > | =20 > | SETTINGS: > | =20 > | * quotechar - specifies a one-character string to use as the=20= > | quoting character. It defaults to '"'. > | * delimiter - specifies a one-character string to use as the=20= > | 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=20 > | terminate rows. > | * quoting - controls when quotes should be generated by the = writer. > | It can take on any of the following module constants: > | =20 > | 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=20 > | 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 > `---- >=20 > _______________________________________________ > 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 --=20 Dr. Stefan Vollmar, Dipl.-Phys. Head of IT group Max-Planck-Institut f=FCr neurologische Forschung Gleuelerstr. 50, 50931 K=F6ln, 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 --Apple-Mail-286-457881531 Content-Disposition: attachment; filename=smime.p7s Content-Type: application/pkcs7-signature; name=smime.p7s Content-Transfer-Encoding: base64 MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIOHTCCBCEw ggMJoAMCAQICAgDHMA0GCSqGSIb3DQEBBQUAMHExCzAJBgNVBAYTAkRFMRwwGgYDVQQKExNEZXV0 c2NoZSBUZWxla29tIEFHMR8wHQYDVQQLExZULVRlbGVTZWMgVHJ1c3QgQ2VudGVyMSMwIQYDVQQD ExpEZXV0c2NoZSBUZWxla29tIFJvb3QgQ0EgMjAeFw0wNjEyMTkxMDI5MDBaFw0xOTA2MzAyMzU5 MDBaMFoxCzAJBgNVBAYTAkRFMRMwEQYDVQQKEwpERk4tVmVyZWluMRAwDgYDVQQLEwdERk4tUEtJ MSQwIgYDVQQDExtERk4tVmVyZWluIFBDQSBHbG9iYWwgLSBHMDEwggEiMA0GCSqGSIb3DQEBAQUA A4IBDwAwggEKAoIBAQDpm8NnhfkNrvWNVMOWUDU9YuluTO2U1wBblSJ01CDrNI/W7MAxBAuZgeKm FNJSoCgjhIt0iQReW+DieMF4yxbLKDU5ey2QRdDtoAB6fL9KDhsAw4bpXCsxEXsM84IkQ4wcOItq aACa7txPeKvSxhObdq3u3ibo7wGvdA/BCaL2a869080UME/15eOkyGKbghoDJzANAmVgTe3RCSMq ljVYJ9N2xnG2kB3E7f81hn1vM7PbD8URwoqDoZRdQWvY0hD1TP3KUazZve+Sg7va64sWVlZDz+HV Ez2mHycwzUlU28kTNJpxdcVs6qcLmPkhnSevPqM5OUhqjK3JmfvDEvK9AgMBAAGjgdkwgdYwcAYD VR0fBGkwZzBloGOgYYZfaHR0cDovL3BraS50ZWxlc2VjLmRlL2NnaS1iaW4vc2VydmljZS9hZl9E b3dubG9hZEFSTC5jcmw/LWNybF9mb3JtYXQ9WF81MDkmLWlzc3Vlcj1EVF9ST09UX0NBXzIwHQYD VR0OBBYEFEm3xs/oPR9/6kR7Eyn38QpwPt5kMB8GA1UdIwQYMBaAFDHDeRu69VPXF+CJei0XbAqz K50zMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgECMA0GCSqGSIb3DQEBBQUAA4IB AQA74Vp3wEgX3KkY7IGvWonwvSiSpspZGBJw7Cjy565/lizn8l0ZMfYTK3S9vYCyufdnyTmieTvh ERHua3iRM347XyYndVNljjNj7s9zw7CSI0khUHUjoR8Y4pSFPT8z6XcgjaK95qGFKUD2P3MyWA0J a6bahWzAP7uNZmRWJE6uDT8yNQFb6YyC2XJZT7GGhfF0hVblw/hc843uR7NTBXDn5U2KaYMo4RMJ hp5eyOpYHgwf+aTUWgRo/Sg+iwK2WLX2oSw3VwBnqyNojWOl75lrXP1LVvarQIc01BGSbOyHxQoL BzNytG8MHVQs2FHHzL8w00Ny8TK/jM5JY6gA9/IcMIIE5zCCA8+gAwIBAgIECs6x2DANBgkqhkiG 9w0BAQUFADBaMQswCQYDVQQGEwJERTETMBEGA1UEChMKREZOLVZlcmVpbjEQMA4GA1UECxMHREZO LVBLSTEkMCIGA1UEAxMbREZOLVZlcmVpbiBQQ0EgR2xvYmFsIC0gRzAxMB4XDTA3MDczMTEzMDgy NVoXDTE5MDYzMDAwMDAwMFowXjELMAkGA1UEBhMCREUxIDAeBgNVBAoTF01heC1QbGFuY2stR2Vz ZWxsc2NoYWZ0MQ8wDQYDVQQDEwZNUEcgQ0ExHDAaBgkqhkiG9w0BCQEWDW1wZy1jYUBtcGcuZGUw ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDYUXKeoNTLgkGwbani4rlua5jzlzISfHna j/5qS+mojQqA/eYa0bGucylV5hyQuyJz7d4gRckdhMDV8DZIxERUIsFlXFj6HGHjaZjlhIHbo4S1 2GjLhTH5YZ37O7MHVw0L/JhhzUIxESM1ZfRT/xLqhz2idJYjT98W9OFvzPgT0yrdieMzkLUz5X/f pY8MuyYBgxnddBJRw6ZtlhdCml4F8Q35pSb8J2qANiwuJVu3WCTgL/ydo3eA8vDieMMZ7O+L1wAn CzBbHAjJ5H6xU1B7mlwmu7V3pToKPgcWmlO0HcTpa68McNTGGiY8pO0/Rn1fXkqDYf8z0lPdWUWx bM1RAgMBAAGjggGvMIIBqzASBgNVHRMBAf8ECDAGAQH/AgEBMAsGA1UdDwQEAwIBBjAdBgNVHQ4E FgQUAtYebgmrv1hlpwo8SDNh0c59w1swHwYDVR0jBBgwFoAUSbfGz+g9H3/qRHsTKffxCnA+3mQw GAYDVR0RBBEwD4ENbXBnLWNhQG1wZy5kZTCBiAYDVR0fBIGAMH4wPaA7oDmGN2h0dHA6Ly9jZHAx LnBjYS5kZm4uZGUvZ2xvYmFsLXJvb3QtY2EvcHViL2NybC9jYWNybC5jcmwwPaA7oDmGN2h0dHA6 Ly9jZHAyLnBjYS5kZm4uZGUvZ2xvYmFsLXJvb3QtY2EvcHViL2NybC9jYWNybC5jcmwwgaIGCCsG AQUFBwEBBIGVMIGSMEcGCCsGAQUFBzAChjtodHRwOi8vY2RwMS5wY2EuZGZuLmRlL2dsb2JhbC1y b290LWNhL3B1Yi9jYWNlcnQvY2FjZXJ0LmNydDBHBggrBgEFBQcwAoY7aHR0cDovL2NkcDIucGNh LmRmbi5kZS9nbG9iYWwtcm9vdC1jYS9wdWIvY2FjZXJ0L2NhY2VydC5jcnQwDQYJKoZIhvcNAQEF BQADggEBABtJz5i/SGqQOficdRUN6myFVmVelCYgkGT+zX7frnBRJFoVVafXolstZdVB7ZpH9FAc qj8O6FTZyhAANwh3+Y1D6xYBWTB7mQGy0lUoUL+j0msZjaMvyj/2LCQp7cKB5vA4h6Ntq5BN5MPc aRhunzjJey/i+J/3jMdG7KpufV47Gl0E8ky9lDegaM7SToG4IOQKwv1wsnuHoxoGLRewxO7FmYd9 uq9f4L2mHtqgq+vibT1DeehT0HGPnrjjd8NK6g2TvZwirwjydbGs7szB5oxDm/pfWoJxYzO68HKT iVBlmaWMLpGw4/UsLE+5xJHpvNXfkYCQ3T+k99KBUZuIpKwwggUJMIID8aADAgECAgQP0SFlMA0G CSqGSIb3DQEBBQUAMF4xCzAJBgNVBAYTAkRFMSAwHgYDVQQKExdNYXgtUGxhbmNrLUdlc2VsbHNj aGFmdDEPMA0GA1UEAxMGTVBHIENBMRwwGgYJKoZIhvcNAQkBFg1tcGctY2FAbXBnLmRlMB4XDTEw MDMzMDA3MTAxM1oXDTEzMDMyOTA3MTAxM1owgYMxCzAJBgNVBAYTAkRFMSAwHgYDVQQKExdNYXgt UGxhbmNrLUdlc2VsbHNjaGFmdDE5MDcGA1UECxMwTWF4LVBsYW5jay1JbnN0aXR1dCBmdWVyIG5l dXJvbG9naXNjaGUgRm9yc2NodW5nMRcwFQYDVQQDEw5TdGVmYW4gVm9sbG1hcjCCASIwDQYJKoZI hvcNAQEBBQADggEPADCCAQoCggEBAKJ5Q4/00WAki7/O9UpcBage000pRhy1WNet3uCO6pa5d0Fg KroZ8yaNBF9wtgBDB96bYXIOGtpvjI40hTNYZrEZ2RFIjcHxuIabbaM71XwZpy/dTI5JEFrWtGAo av6T8pEcLWwAB0cPWD32q9Wsc1eGhH4KxnYMfppvc9oMvL43NLnt4iFmxhtFpeiDj/YzkhRtNOm1 aX24ylF415b+lrlJO8LarKj0Ao+eylpnTjTM+//4d8++jbar0Kxrgn1AIdPNEM56xKn0QsLMXF4/ Yv7AaHL3EFcClJN7AiYsmSPJvQV1iWxUNI3ki0cxVfVFxylVK0/ATwacVQx/Ji9fGPMCAwEAAaOC AacwggGjMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEF BQcDBDAdBgNVHQ4EFgQUVK+so4zv/Jlf1hLI5tsbsWvUnTEwHwYDVR0jBBgwFoAUAtYebgmrv1hl pwo8SDNh0c59w1swHAYDVR0RBBUwE4ERdm9sbG1hckBuZi5tcGcuZGUwdwYDVR0fBHAwbjA1oDOg MYYvaHR0cDovL2NkcDEucGNhLmRmbi5kZS9tcGctY2EvcHViL2NybC9jYWNybC5jcmwwNaAzoDGG L2h0dHA6Ly9jZHAyLnBjYS5kZm4uZGUvbXBnLWNhL3B1Yi9jcmwvY2FjcmwuY3JsMIGSBggrBgEF BQcBAQSBhTCBgjA/BggrBgEFBQcwAoYzaHR0cDovL2NkcDEucGNhLmRmbi5kZS9tcGctY2EvcHVi L2NhY2VydC9jYWNlcnQuY3J0MD8GCCsGAQUFBzAChjNodHRwOi8vY2RwMi5wY2EuZGZuLmRlL21w Zy1jYS9wdWIvY2FjZXJ0L2NhY2VydC5jcnQwDQYJKoZIhvcNAQEFBQADggEBAMLAoN8vRhG0/YD+ REms9mWKjIH3D3pb90z2smeOMkQfu9UvDiCOMlqor52F/kBu60Z3Z2PAFGUS6ziihfuTrmuyvEJu D50k2vSUxHpn/pd3jLsplQiQNx3ZXByu3Jf0VfbLZeO6ZUD8Gs6C8DXD54F/nGy3TsS3dCSRtw/7 +PZ/GjaErVJRniPGJ4+T9T6mH2hej0EcVWkX2wIMtz9HHQvh0egRLxkQjJ1yEPFLc2K1kwIIElmQ tIOJHcF8mLzd3DCk8iRaJ/Pj/3X2wZHecVTAXIcZgVQDXT9B3iG/Q65RmaNI36UCQjmNirL7gYXh /hjy1VnFwLlZa9xxK/PjttkxggLeMIIC2gIBATBmMF4xCzAJBgNVBAYTAkRFMSAwHgYDVQQKExdN YXgtUGxhbmNrLUdlc2VsbHNjaGFmdDEPMA0GA1UEAxMGTVBHIENBMRwwGgYJKoZIhvcNAQkBFg1t cGctY2FAbXBnLmRlAgQP0SFlMAkGBSsOAwIaBQCgggFNMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0B BwEwHAYJKoZIhvcNAQkFMQ8XDTEwMTAyNTEwMzIwN1owIwYJKoZIhvcNAQkEMRYEFBhy8GRzmMSr BHBEb5MJq6pxlERlMHUGCSsGAQQBgjcQBDFoMGYwXjELMAkGA1UEBhMCREUxIDAeBgNVBAoTF01h eC1QbGFuY2stR2VzZWxsc2NoYWZ0MQ8wDQYDVQQDEwZNUEcgQ0ExHDAaBgkqhkiG9w0BCQEWDW1w Zy1jYUBtcGcuZGUCBA/RIWUwdwYLKoZIhvcNAQkQAgsxaKBmMF4xCzAJBgNVBAYTAkRFMSAwHgYD VQQKExdNYXgtUGxhbmNrLUdlc2VsbHNjaGFmdDEPMA0GA1UEAxMGTVBHIENBMRwwGgYJKoZIhvcN AQkBFg1tcGctY2FAbXBnLmRlAgQP0SFlMA0GCSqGSIb3DQEBAQUABIIBAFsVM+OiAOVaKEW4oLsu ATQWQ+QM+eSQJbnCj1EJd2VLiqA3DDuEgzVW6BYvCdoM8TDKCpSbdJVPgtDaNGFtvJ7W84urw/qG kjOh9mdOnLVr6SltznYQJLmPdETujZsFr9W4FjuTUOAxXE03rBKEhhNjWyZfL91rpkQJvi0fcTne YY3CnhVz/4d5lV9BVZHLN4SVFtW17mjrfMpoi51MnCGrPFMegkQZiEa68s2X9Z0GaarAzXXAHv07 1cZdetR8IfcboprQKrw06LXSPJV7EhsSXihxS9aQAyZVi6eoC6DevzemkOEwb2gJqY/WWoKmmMth VIw20B0Dq98rv09Eh0cAAAAAAAA= --Apple-Mail-286-457881531-- --===============1324372016== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ 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 --===============1324372016==--