Yes, there are a couple of newer features that were added after the 
documentation was written. Keeping documentation up to date is also a PITA.

> On 03 Oct 2015, at 08:54, stepharo <steph...@free.fr> wrote:
> 
> sven do you think that we should add this to the chapter?
> 
> 
> Le 28/9/15 16:42, Sven Van Caekenberghe a écrit :
>>> On 28 Sep 2015, at 15:04, Mariano Martinez Peck <marianop...@gmail.com> 
>>> wrote:
>>> 
>>> Imagine something like this:
>>> 
>>> neoCSVReader := (NeoCSVReader on: stream).
>>>     neoCSVReader
>>>             separator: $,;
>>>             recordClass: PriceRecord;
>>>             addIgnoredField; "<name>"
>>>             addField:  #securityUniqueId: ; "<ticker>"      
>>>             addField: #date: converter: [ :string | Date readFrom: string 
>>> readStream pattern: 'yyyymmdd' ]; "<date>"
>>>             addFloatField: #open: ; "<open>"
>>>             addFloatField: #high: ; "<high>"
>>>             addFloatField: #low: ; "<low>"
>>>             addFloatField: #close: ; "<close>"
>>>             addIntegerField: #volume: . "<vol>"
>>>     neoCSVReader    skipHeader.
>>>     priceRecords := neoCSVReader upToEnd.
>>> 
>>> 
>>> The #recordClass: is optional. If not, you can get an array of arrays 
>>> instead.
>>> You can add #addIgnoredField for all the ones you want to ignore, then add 
>>> the #addNumber: etc for the number ones, etc.
>> Correct.
>> 
>>> To write a default empty value, I would use my own converter. Something 
>>> like:
>>> 
>>> addField: #stringcolumn: converter: [ :string | string isEmptyOrNil ifTrue: 
>>> [ '' ]  ];
>>> addField: #numbercolumn: converter: [ :string | string isEmptyOrNil ifTrue: 
>>> [ 0 ] ifFalse: [ NeoNumberParser parse: string ]  ];
>> Actually there is NeoCSVReader>>#emptyFieldValue: which you can use the 
>> configure the reader (but it counts for all fields).
>> 
>>> Hope this helps.
>>> 
>>> Cheers,
>>> 
>>> 
>>> 
>>> On Mon, Sep 28, 2015 at 9:06 AM, Nicolai Hess <nicolaih...@web.de> wrote:
>>> Hi,
>>> 
>>> I have two problems I could not solve:
>>> 
>>> 1. I would like to read only some columns: I have a large file with
>>>     ~30 colums, but I am only interested on ~5 columns
>>>     (not that important, I could pre-process the file) but anyway it would 
>>> be
>>>     nice to do it in smalltalk.
>>> 
>>> 2. some columns will contain only strings (quoted values) and some only 
>>> numbers,
>>>     but the field may be empty, is it possible to define the default 
>>> "emptyValue" as an
>>>     - empty string for empty fields in the "string column"
>>>     - 0 for empty fields in the "number column"?
>>> 
>>> 
>>> thanks
>>>  in advance
>>> 
>>> nicolai
>>> 
>>> 
>>> 
>>> -- 
>>> Mariano
>>> http://marianopeck.wordpress.com
>> 
>> 
> 
> 


Reply via email to