Hi Sven, 2015-01-23 16:06 GMT-03:00 Sven Van Caekenberghe <sven@stfx.eu>:
Hi Hernán,
On 23 Jan 2015, at 19:50, Hernán Morales Durand < hernan.morales@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.
I am trying to understand the implementation, I see you included #addIgnoredFields: for consecutive fields in Neo-CSV-Core-SvenVanCaekenberghe.21 A question about usage then, adding ignored field(s) requires adding field types on all other remaining fields?
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:
I was using the version from the Configuration and missed the #select:[thenDo:] update.
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.
Ok
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.
Thank you Sven! Cheers,