# Csv2ical

**URL:** <https://www.ruby-forum.com/t/csv2ical/200916>\
**Category:** IT\
**Created:** [December 24, 2010, 6:36pm UTC](https://www.ruby-forum.com/t/csv2ical/200916 "2010-12-24T18:36:47Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![nikuSESS](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/f17d59/32.png) [@nikuSESS](https://www.ruby-forum.com/u/nikuSESS)\
**Post date:** [December 24, 2010, 6:36pm UTC](https://www.ruby-forum.com/t/csv2ical/200916/1 "2010-12-24T18:36:47Z")

</div>

Ciao a tutti,mi trovo nella necessità di trasformare dei file in formato  
csv in ical, al fine di poterli importali in una rubrica.Ho trovato uno  
script che potrebbe fare al caso mio, implementandolosecondo necessità,  
ma al primo test con il file fornito a corredo ho un problema:

massimo@71G:~$ ruby1.9.1 csv2ical.rb test001.csv csv2ical - converting  
[test001.csv] to [test001.ics]csv2ical.rb:36:in `block in <main>': undefined method`[]’ for #CSV:0x9c5d86c (NoMethodError) from  
/usr/lib/ruby/1.9.1/csv.rb:1340:in `open' from csv2ical.rb:34:in`'massimo@71G:~$

Allego il file ottenuto utilizzando irbMi potreste spiegare come  
ovviare?

GrazieMassimo

---

<div class="post-metadata">

**Author:** ![home](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/h/b5a626/32.png) [@home](https://www.ruby-forum.com/u/home)\
**Post date:** [December 26, 2010, 8:15pm UTC](https://www.ruby-forum.com/t/csv2ical/200916/2 "2010-12-26T20:15:03Z")

</div>

Ciao a tutti,  
ho scoperto che dalla versione 1.9 di Ruby csv stato sostituito da  
FASTERCSV  
([CSV file reading in ruby 1.9 (fastercsv) | The Accidental Rubyist](http://totalrecall.wordpress.com/2010/05/28/csv-file-reading-in-ruby-1-9-fastercsv/))

Il fatto che il programmino non funzionava era probabilmente legato a  
questo, cos nella mia ignoranza stato abbastanza semplice adattarlo.

Purtroppo per mi processa solo la prima riga e non mi crea un file  
unico con tutte le voci presenti nel file in formato CSV.

Sapete come dovrei risolvere?

Grazie  
Massimo

…  
cal = Icalendar::Calendar.new

ctr = 0

CSV.foreach(“#{$CSVFile}”, :quote\_char =\> ‘"’, :col\_sep =\>‘,’, :row\_sep  
=\>:auto) do |row|

```
puts "processing #{row[0]} #{row[1]} #{row[2]} #{row[3]} #{row[4]} "

event = cal.event
event.timestamp = DateTime.now
event.summary = row[3]
event.description = row[3] + "\n\n" + row[4]
event.location = row[4]

start_date = Date.parse(row[0])
start_time = row[1]
event.start = DateTime.parse(start_date.to_s + " " + start_time)

end_date = Date.parse(row[0])
end_time = row[2]
event.end = DateTime.parse(end_date.to_s + " " + end_time)

    ctr +=1
    puts " #{ctr} righe"

```

break  
end

tcfile = File.new(“#{$iCalFile}”, “w+”);  
tcfile.puts cal.to\_ical  
tcfile.close;

Il 24/12/2010 18:36, home ha scritto:
