# String Spliting/CSV question

**URL:** <https://www.ruby-forum.com/t/string-spliting-csv-question/190862>\
**Category:** Ruby\
**Created:** [June 29, 2010, 1:41pm UTC](https://www.ruby-forum.com/t/string-spliting-csv-question/190862 "2010-06-29T13:41:44Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![sclarke](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/b19c9b/32.png) [@sclarke](https://www.ruby-forum.com/u/sclarke)\
**Post date:** [June 29, 2010, 1:41pm UTC](https://www.ruby-forum.com/t/string-spliting-csv-question/190862/1 "2010-06-29T13:41:44Z")

</div>

Hey all,

Just a quick questions regarding some data I am trying to process. I am  
reading a file which contains data like so

HeaderA,HeaderB,HeaderC  
1234545,“items, more, random, data”,data extradata  
1234325,“items, more, data”,more stuff  
1234125,“items, more, random, data, somethingelse”,same  
1232135,“stuff, plus, diff, data”,data extradata

So it is like CSV, with 3 columns of data one of which is contained  
within quotes and has comma’s separating the data. I am trying to split  
this data into the three columns however I cannot use a comma because it  
exists within the second column. I thought maybe I could create like and  
index from the header data (HeaderA,HeaderB,HeaderC), but I am unsure.

Can anyone help me get three columns of data into variables?

Thanks a lot

---

<div class="post-metadata">

**Author:** ![sclarke](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/b19c9b/32.png) [@sclarke](https://www.ruby-forum.com/u/sclarke)\
**Post date:** [June 29, 2010, 2:14pm UTC](https://www.ruby-forum.com/t/string-spliting-csv-question/190862/2 "2010-06-29T14:14:05Z")

</div>

Hi

You may use csv library. It’s standard library and came with ruby  
itself.  
[http://www.ruby-doc.org/stdlib/libdoc/csv/rdoc/index.html](http://www.ruby-doc.org/stdlib/libdoc/csv/rdoc/index.html)

ie)  
reuqire ‘csv’  
a = CSV.open(‘file’, ‘r’)  
a.each do |row1, row2, row3|  
…  
end

regards

–  
arton [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![sclarke](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/b19c9b/32.png) [@sclarke](https://www.ruby-forum.com/u/sclarke)\
**Post date:** [June 29, 2010, 2:21pm UTC](https://www.ruby-forum.com/t/string-spliting-csv-question/190862/3 "2010-06-29T14:21:05Z")

</div>

Good point.

Thanks a lot

arton wrote:

> Hi
> 
> You may use csv library. It’s standard library and came with ruby  
> itself.  
> [http://www.ruby-doc.org/stdlib/libdoc/csv/rdoc/index.html](http://www.ruby-doc.org/stdlib/libdoc/csv/rdoc/index.html)
> 
> ie)  
> reuqire ‘csv’  
> a = CSV.open(‘file’, ‘r’)  
> a.each do |row1, row2, row3|  
> …  
> end
> 
> regards
> 
> –  
> arton [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)
