William James wrote:
> On Oct 17, 11:03 am, baptiste Augui=E9 <ba... / exeter.ac.uk> wrote:
> > Hello,
> >
> > This is a basic question, as I'm very new to Ruby. I have a text file
> > 'input.dat' containing the following data and text:
> >
> > > some text
> > > some text...
> >
> > > angle          value1            value2
> >
> > > 156.00        3.3688E-03        1.7040E-03
> > > 157.00        3.2919E-03        1.7118E-03
> > > 158.00        3.2140E-03        1.7190E-03
> > > 159.00        3.1354E-03        1.7258E-03
> > > 160.00        3.0560E-03        1.7320E-03
> > > 161.00        2.9760E-03        1.7378E-03
> > > 162.00        2.8956E-03        1.7431E-03
> > > 163.00        2.8148E-03        1.7479E-03
> > > 164.00        2.7338E-03        1.7523E-03
> > > 165.00        2.6526E-03        1.7562E-03
> > > 166.00        2.5714E-03        1.7597E-03
> > > 167.00        2.4902E-03        1.7628E-03
> >
> > I would like to extract the 3 columns of data for several consecutive
> > lines (say, from angle =3D 158 to 165). These values should be stored
> > in some array or vector. How can I do that in Ruby?
> >
> > Many thanks,
> >
> > baptiste
>
> p IO.readlines( 'input.dat').grep( /^\d/ ).
>   map{|s| s.strip.split.map{|x| x.to_f}}.select{|a|
>     a.first.between?(158,165) }

Please pardon my perverse prolixity.  I threw in a "strip" even though
my subconscious told me it was superfluous.

p IO.readlines( 'input.dat').grep( /^\d/ ).
  map{|s| s.split.map{|x| x.to_f}}.select{|a|
    a.first.between?(158,165) }