Hi Hernán,

> On 23 Jan 2015, at 19:50, Hernán Morales Durand <hernan.mora...@gmail.com> 
> wrote:
> 
> I used to use a CSV parser from Squeak where I could attach conditional 
> iterations:
> 
> csvParser rowsSkipFirst: 2 do: [: row | " some action ignoring first 2 fields 
> on each row " ].
> csvParser rowsSkipLast: 2 do: [: row | " some action ignoring last 2 fields 
> on each row " ].

With NeoCSVParser you can describe how each field is read and converted, using 
the same mechanism you can ignore fields. Have a look at the senders of 
#addIgnoredField from the unit tests.

> csvParser rowsWhere: [ " a condition block " ] do: [ : row | " ... " ].

NeoCSVParser behaves a bit like a stream and a bit like a collection, there are 
#next, #atEnd and #upToEnd as well as #do: and  #select:

> csvParser rowsUpTo: 500000 do: [ " some action for rows up to 500000 " ].
> csvParser rowsFrom: 2000 to: 5000 do: [ " some action for rows between 2000 
> to 5000 " ].

Those are not there, you will have to count yourself. #next can be used to 
#skip.

> I want to replace the parser with NeoCSVReader, is this easily possible with 
> the current implementation?

Should work, let me know if you have any problems.

> Cheers,
> 
> Hernán

Sven


Reply via email to