> On 23 Jan 2015, at 20:53, Hern��n Morales Durand <hernan.morales@gmail.com> wrote:
>
> 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?
Yes, like this:
testReadWithIgnoredField
�� �� �� �� | input |
�� �� �� �� input := (String crlf join: #( '1,2,a,3' '1,2,b,3' '1,2,c,3' '')).
�� �� �� �� self
�� �� �� �� �� �� �� �� assert: ((NeoCSVReader on: input readStream)
�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� addIntegerField;
�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� addIntegerField;
�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� addIgnoredField;
�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� addIntegerField;
�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� upToEnd)
�� �� �� �� �� �� �� �� equals: {
�� �� �� �� �� �� �� �� �� �� �� �� #(1 2 3).
�� �� �� �� �� �� �� �� �� �� �� �� #(1 2 3).
�� �� �� �� �� �� �� �� �� �� �� �� #(1 2 3).}