> 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