On 10/31/07, German Alberto Gimenez Silva <[EMAIL PROTECTED]> wrote:
> El Wednesday 31 October 2007 10:41:15 Rafael Bidegain escribió:
> > El 31/10/07, Damian Janowski <[EMAIL PROTECTED]> escribió:
> > > On 10/31/07, German Alberto Gimenez Silva <[EMAIL PROTECTED]> wrote:
> > > > Hola, me parecio que lo que querias hacer se podia lograr con Ruby y
> > > > sin mucho mas. Así que me di a la tarea de intentar una solución:
> > > >
> > > > #!/usr/bin/env ruby
> > > > open("text.txt").each { |l| print "Nombre: #{l.split("<tab>")[0]}
> > > > Apellido: #{l.split("<tab>")[1]} Edad: #{l.split("<tab>")[2]}" }
> > >
> > > Muchachos, tengamos en cuenta que estas soluciones no lidian con el
> > > escape de caracteres...
> >
> > de la forma que se planteó el caso habría un solo caracter a escapar y
> > es el tab, se me ocurre que eso se pued
> >
> > > Además, CSV es un estándar y hay más cosas a tener en cuenta que el
> > > String#split...
> >
> > no se planteo un comma separated values, no obstante las cosas a tener
> > en cuenta son (por lo menos)
> > a) el fin de linea
> > b) el encode del archivo.
> Me parece correcto lo que aporta Rafael.
> El tema esta en la consigna y no en el estandar CSV (que por cierto ruby trae
> una libreria para manejarlo) con un require 'csv'
> # EXAMPLE 1
> # CSV.open('csvfile.csv', 'r') do |row|
> # p row
> # end
> #
> # EXAMPLE 2
> # reader = CSV.open('csvfile.csv', 'r')
> # row1 = reader.shift
> # row2 = reader.shift
> # if row2.empty?
> # p 'row2 not find.'
> # end
> # reader.close
> Nota el ejemplo me lo robe de la documentación del código de la libreria.
>
> La consulta partia de:
> ..."Hola gente, hace poco me inscribí en la lista, ya que comencé a
> desarrollar
> en RoR, y ahora se me planteo una inquietud.
> Necesito importar un archivo .txt que esta separado por tab del tipo de"...
>
> Al menos yo no deduje que el archivo tenia formato csv, si no que es una
> archivo de texto con un formato particular, ya que este formato no se
> menciona en ningún lugar de la consulta.
>
> Tal vez es posible realizar una respuesta para esa consulta, por ejemplo o
> plantear la manera de parsear un archivo csv (que no han sido pocas las veces
> que lo tuve que hacer) pero creo que para este caso particular es excesivo ya
> que la unica caracteristica que tiene el archivo es que esta separado por
> <TABS>.
Disculpen si alguien se sintió atacado.
Quise decir que no hace falta reinventar la rueda y que nos quede
medio cuadrada. En el archivo que tiene que parsear nuestro compañero
quizás haya una dirección o algún otro caracter con una coma, y esa
coma probablemente esté escapada:
1,Damian,"Buenos Aires, Capital",1414
Se los planteé porque me pasó muchas veces y no quería que le pase a Martín...
> Ahh y Martin Aceto ¿Sirvio alguna de las soluciones? o ¿Nada que ver con lo
> que querias?
Claro, al final eso es lo importante :)
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar