# FasterCSV load file to table

**URL:** <https://www.ruby-forum.com/t/fastercsv-load-file-to-table/110324>\
**Category:** Rails\
**Created:** [July 25, 2007, 10:53am UTC](https://www.ruby-forum.com/t/fastercsv-load-file-to-table/110324 "2007-07-25T10:53:30Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Vitali](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/bc8723/32.png) [@Vitali](https://www.ruby-forum.com/u/Vitali)\
**Post date:** [July 25, 2007, 10:53am UTC](https://www.ruby-forum.com/t/fastercsv-load-file-to-table/110324/1 "2007-07-25T10:53:30Z")

</div>

Hello G.s,  
May be it is simply but any way… fasterCSV 1.2.0  
how to load data from file to table ☹ I have tried this:  
file has just one line 1,2,3  
data = FCSV.read(“C:\temp\_file.csv”)  
table = FCSV.parse(data, :headers =\> true)

```
puts "data overview"
puts data
puts "table overview"
puts table

```

but got very strange error:  
undefined method `pos' for #<Array:0xcb2e114> (<-- this is for another big file) for file with 1,2,3 it shows: undefined method`pos’ for [[“1”, “2”, “3”]]:Array

What is reason and what is the “pos”?

---

<div class="post-metadata">

**Author:** ![Vitali](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/bc8723/32.png) [@Vitali](https://www.ruby-forum.com/u/Vitali)\
**Post date:** [July 25, 2007, 11:16am UTC](https://www.ruby-forum.com/t/fastercsv-load-file-to-table/110324/2 "2007-07-25T11:16:17Z")

</div>

Have tried this way…  
data = FCSV.read(“C:\temp\_file.csv”)  
csv\_output = FasterCSV.generate do |csv|  
data.each do |dt|  
csv \<\< dt  
end  
end

```
table = FCSV.parse(csv_output, :headers => true)

```

but does it really good way?

---

<div class="post-metadata">

**Author:** ![Vitali](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/bc8723/32.png) [@Vitali](https://www.ruby-forum.com/u/Vitali)\
**Post date:** [July 25, 2007, 3:16pm UTC](https://www.ruby-forum.com/t/fastercsv-load-file-to-table/110324/3 "2007-07-25T15:16:25Z")

</div>

You can use FasterCSV:

data = []  
FasterCSV.foreach(‘file.csv’) { |row| data \<\< row }  
puts data #data is all loaded now in the ‘data’ variable

Also, using the (slower) built in libraries:

CSV::Reader.parse(string) { |row| row.each { |cell| puts cell }}

Both these examples are from the really good O’Reilly book, Ruby  
Cookbook

---

<div class="post-metadata">

**Author:** ![Vitali](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/bc8723/32.png) [@Vitali](https://www.ruby-forum.com/u/Vitali)\
**Post date:** [July 25, 2007, 5:08pm UTC](https://www.ruby-forum.com/t/fastercsv-load-file-to-table/110324/4 "2007-07-25T17:08:07Z")

</div>

Thank you!
