> On 28 Sep 2015, at 15:04, Mariano Martinez Peck <marianopeck@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 <nicolaihess@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