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>.
Ahh y Martin Aceto ¿Sirvio alguna de las soluciones? o ¿Nada que ver con lo
que querias?
Saludos.
>
> el caso a) se puede eliminar usando chop
> el otro caso admite varias soluciones, entre otras usar
> $KCODE = 'u'
>
>
> saludos
--
My Blog: http://libertadcero.wordpress.com/
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar