Una consulta de como implementar que la linea que voy evaluando al abrir el 
archivo tenga una longitud de 106 caracteres o en su defecto que se salteé en 
el procesamiento las 3 primeras lineas del archivo ya que las mismas 
corresponden a encabezados que no son tenidos en cuenta.
No me funciona este bloque, ya que pasa y me da error al mapear con el Struct 
cuando no tiene el contenido que espera.
      Registros = File.open('c:/vts/txt/dos.txt').map {|linea| if linea.length 
>= 106 then Estructura.new(linea[0..30].strip, *linea[31..-1].split) end}

Muchas gracias nuevamente.

Fernando Castañeda.
www.inidep.edu.ar

Codigo que vengo testeando 

class Movimiento
    attr_writer :nombre , :matricula 
    attr_reader :nombre , :matricula
    def initialize(nombre, matricula)
        @nombre = nombre
        @matricula = matricula
    end
end 

miarray=Array.new
Estructura = Struct.new(:barco, :matricula, :latitud, :ems, :a0, :a1, :a2, :a3, 
:a4, :a5, :a6, :a7, :a8, :a9)
#Registros = File.open('c:/vts/txt/d.txt').map {|linea| puts linea.size}
Registros = File.open('c:/vts/txt/dos.txt').map {|linea| if linea.length = 106 
then Estructura.new(linea[0..30].strip, *linea[31..-1].split) end}
Registros.each{|x| miarray << Movimiento.new(x.barco, x.matricula) }
miarray.each{|y| puts y.matricula+" "+y.nombre}
miarray.map {|item| puts item.matricula+" "+item.nombre }

_______________________________________________
ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a