Hi,
I need to write a number of empty quoted fields in a CSV export. The receiving application will complain about missing quotes for empty text fields... (don't ask, I've done all the eye rolling for you already) My frst attempt was: writer addConstantField: '""'. But this doesn't write the quotes - I really don't see why, but it's the case. Also, adding writer addObjectField: [:a| '""']. doesn't really work, because it will literally add the double quotes between single quotes... (???) Do I really have to implement some method that returns an empty String on my business objects and use: writer addQuotedField: #justAnEmptyString. ? Am I missing some switch to enable quotes for empty quoted fields? My version of NeoCSVWriter on VA Smalltalk is not actually a current one... Joachim And, btw: Happy Holidays to all of you and a Happy new Year! -- ----------------------------------------------------------------------- Objektfabrik Joachim Tuchel mailto:[hidden email] Fliederweg 1 http://www.objektfabrik.de D-71640 Ludwigsburg http://joachimtuchel.wordpress.com Telefon: +49 7141 56 10 86 0 Fax: +49 7141 56 10 86 1 |
Hi Joachim,
nil fields normally write as 'empty quoted fields': String streamContents: [ :out | (NeoCSVWriter on: out) nextPut: #(nil nil nil) ]. => '"","",""' Is this not what you want/need ? Sven > On 22 Dec 2017, at 15:05, [hidden email] wrote: > > Hi, > > I need to write a number of empty quoted fields in a CSV export. The receiving application will complain about missing quotes for empty text fields... (don't ask, I've done all the eye rolling for you already) > > My frst attempt was: > > writer addConstantField: '""'. > > > But this doesn't write the quotes - I really don't see why, but it's the case. > > Also, adding > > writer addObjectField: [:a| '""']. > > > doesn't really work, because it will literally add the double quotes between single quotes... (???) > > > > Do I really have to implement some method that returns an empty String on my business objects and use: > > writer addQuotedField: #justAnEmptyString. ? > > Am I missing some switch to enable quotes for empty quoted fields? > > My version of NeoCSVWriter on VA Smalltalk is not actually a current one... > > > > Joachim > > And, btw: Happy Holidays to all of you and a Happy new Year! > > > > > -- > ----------------------------------------------------------------------- > Objektfabrik Joachim Tuchel mailto:[hidden email] > Fliederweg 1 http://www.objektfabrik.de > D-71640 Ludwigsburg http://joachimtuchel.wordpress.com > Telefon: +49 7141 56 10 86 0 Fax: +49 7141 56 10 86 1 > > |
Sven,
hmm. The fields I need to write are known not to be written with my application, so I am lloking for a way to define a field as being an empty quoted field at all times. So for I've tried: addConstantField: nil --> Exception addObjectFied: [:a| ] --> empty field without quotes addConstantField: '' --> empty field without quotes So it seems I have to implement some method on my business object that returns nil and map it to all the fields that need to be empty and quoted. Joachim Am 22.12.17 um 15:48 schrieb Sven Van Caekenberghe: > Hi Joachim, > > nil fields normally write as 'empty quoted fields': > > String streamContents: [ :out | (NeoCSVWriter on: out) nextPut: #(nil nil nil) ]. > > => '"","",""' > > Is this not what you want/need ? > > Sven > >> On 22 Dec 2017, at 15:05, [hidden email] wrote: >> >> Hi, >> >> I need to write a number of empty quoted fields in a CSV export. The receiving application will complain about missing quotes for empty text fields... (don't ask, I've done all the eye rolling for you already) >> >> My frst attempt was: >> >> writer addConstantField: '""'. >> >> >> But this doesn't write the quotes - I really don't see why, but it's the case. >> >> Also, adding >> >> writer addObjectField: [:a| '""']. >> >> >> doesn't really work, because it will literally add the double quotes between single quotes... (???) >> >> >> >> Do I really have to implement some method that returns an empty String on my business objects and use: >> >> writer addQuotedField: #justAnEmptyString. ? >> >> Am I missing some switch to enable quotes for empty quoted fields? >> >> My version of NeoCSVWriter on VA Smalltalk is not actually a current one... >> >> >> >> Joachim >> >> And, btw: Happy Holidays to all of you and a Happy new Year! >> >> >> >> >> -- >> ----------------------------------------------------------------------- >> Objektfabrik Joachim Tuchel mailto:[hidden email] >> Fliederweg 1 http://www.objektfabrik.de >> D-71640 Ludwigsburg http://joachimtuchel.wordpress.com >> Telefon: +49 7141 56 10 86 0 Fax: +49 7141 56 10 86 1 >> >> > > -- ----------------------------------------------------------------------- Objektfabrik Joachim Tuchel mailto:[hidden email] Fliederweg 1 http://www.objektfabrik.de D-71640 Ludwigsburg http://joachimtuchel.wordpress.com Telefon: +49 7141 56 10 86 0 Fax: +49 7141 56 10 86 1 |
Joachim,
It works for me: String streamContents: [ :out | (NeoCSVWriter on: out) addField: #x; addConstantField: String empty; addField: #y; nextPutAll: { 1@2. 3@4 } ]. => '"1","","2" "3","","4" ' What is the value of the instance variable #fieldWriter inside NeoCSVWriter ? It should default to #writeQuotedField: (as set in #initialize). If I am misinterpreting your intentions, please provide a small standalone executable example. Sven > On 24 Dec 2017, at 07:13, [hidden email] wrote: > > Sven, > > hmm. The fields I need to write are known not to be written with my application, so I am lloking for a way to define a field as being an empty quoted field at all times. > So for I've tried: > > addConstantField: nil --> Exception > addObjectFied: [:a| ] --> empty field without quotes > addConstantField: '' --> empty field without quotes > > So it seems I have to implement some method on my business object that returns nil and map it to all the fields that need to be empty and quoted. > > > Joachim > > > Am 22.12.17 um 15:48 schrieb Sven Van Caekenberghe: >> Hi Joachim, >> >> nil fields normally write as 'empty quoted fields': >> >> String streamContents: [ :out | (NeoCSVWriter on: out) nextPut: #(nil nil nil) ]. >> >> => '"","",""' >> >> Is this not what you want/need ? >> >> Sven >> >>> On 22 Dec 2017, at 15:05, [hidden email] wrote: >>> >>> Hi, >>> >>> I need to write a number of empty quoted fields in a CSV export. The receiving application will complain about missing quotes for empty text fields... (don't ask, I've done all the eye rolling for you already) >>> >>> My frst attempt was: >>> >>> writer addConstantField: '""'. >>> >>> >>> But this doesn't write the quotes - I really don't see why, but it's the case. >>> >>> Also, adding >>> >>> writer addObjectField: [:a| '""']. >>> >>> >>> doesn't really work, because it will literally add the double quotes between single quotes... (???) >>> >>> >>> >>> Do I really have to implement some method that returns an empty String on my business objects and use: >>> >>> writer addQuotedField: #justAnEmptyString. ? >>> >>> Am I missing some switch to enable quotes for empty quoted fields? >>> >>> My version of NeoCSVWriter on VA Smalltalk is not actually a current one... >>> >>> >>> >>> Joachim >>> >>> And, btw: Happy Holidays to all of you and a Happy new Year! >>> >>> >>> >>> >>> -- >>> ----------------------------------------------------------------------- >>> Objektfabrik Joachim Tuchel mailto:[hidden email] >>> Fliederweg 1 http://www.objektfabrik.de >>> D-71640 Ludwigsburg http://joachimtuchel.wordpress.com >>> Telefon: +49 7141 56 10 86 0 Fax: +49 7141 56 10 86 1 >>> >>> >> >> > > -- > ----------------------------------------------------------------------- > Objektfabrik Joachim Tuchel mailto:[hidden email] > Fliederweg 1 http://www.objektfabrik.de > D-71640 Ludwigsburg http://joachimtuchel.wordpress.com > Telefon: +49 7141 56 10 86 0 Fax: +49 7141 56 10 86 1 > > |
Free forum by Nabble | Edit this page |