[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

FasterCSV

Windham, Kristopher R.

5/7/2008 9:56:00 PM

I am wanting to use faster_csv to read two csv files and
append columns to the first from the second and write to a temp file.

for example,

1st Csv
...............................................
id,name_first,name_last,email\n
1,Dave,Wilson,dave@wilson.com\n
2,James,Stevens,james@stevens.com\n

2nd Csv
.................................................
address_street,address_city,address_state\n
105 Street,Little Rock,AR\n
205 Street,Dallas,TX\n


Output
..............................................
id,name_first,name_last,email,address_street,address_city,address_state\n
1,Dave,Wilson,dave@wilson.com,105 Street,Little Rock,AR\n
2,James,Stevens,james@stevens.com,205 Street,Dallas,TX\n

I was hoping some one could point in me in the right direction on how to
get started with this.

Here is what I have so far.. As you can see that is just the first half
of the data.

.........................................................................

require "faster_csv"

class CSVReadWrite


def readwrite
tempfile = "csvs/temp.csv"
if File.exists?("csvs/temp.csv")
File.delete("csvs/temp.csv")
end
File.new("csvs/temp.csv", "w")

filenameusers = "csvs/Users.csv"
filenameaddresses = "csvs/Addresses.csv"
FasterCSV.foreach(filenameusers) do |line|

@results = line[0], line[1] , line[2]


FasterCSV.open("csvs/tempout.csv", "a") do |csv|
csv << @results

end

end

r1 = CSVReadWrite.new()
r1.readwrite

end
--
Posted via http://www.ruby-....

2 Answers

James Gray

5/7/2008 10:21:00 PM

0

On May 7, 2008, at 4:55 PM, Kris Windham wrote:

> I am wanting to use faster_csv to read two csv files and
> append columns to the first from the second and write to a temp file.
>
> for example,
>
> 1st Csv
> ...............................................
> id,name_first,name_last,email\n
> 1,Dave,Wilson,dave@wilson.com\n
> 2,James,Stevens,james@stevens.com\n
>
> 2nd Csv
> .................................................
> address_street,address_city,address_state\n
> 105 Street,Little Rock,AR\n
> 205 Street,Dallas,TX\n
>
>
> Output
> ..............................................
> id
> ,name_first,name_last,email,address_street,address_city,address_state
> \n
> 1,Dave,Wilson,dave@wilson.com,105 Street,Little Rock,AR\n
> 2,James,Stevens,james@stevens.com,205 Street,Dallas,TX\n
>
> I was hoping some one could point in me in the right direction on
> how to
> get started with this.

What about something like:

require "rubygems"
require "faster_csv"

users = FCSV.open("csvs/Users.csv")
addresses = FCSV.open("csvs/Addresses.csv")
joined = FCSV.open("csvs/temp.csv", "w")

while (user = users.gets) and (address = addresses.gets)
joined << user.fields + address.fields
end

[users, addresses, joined].map { |csv| csv.close }

__END__

Hope that helps.

James Edward Gray II

Windham, Kristopher R.

5/7/2008 10:43:00 PM

0

James Gray wrote:
> On May 7, 2008, at 4:55 PM, Kris Windham wrote:
>
>>
>> ,name_first,name_last,email,address_street,address_city,address_state
>> \n
>> 1,Dave,Wilson,dave@wilson.com,105 Street,Little Rock,AR\n
>> 2,James,Stevens,james@stevens.com,205 Street,Dallas,TX\n
>>
>> I was hoping some one could point in me in the right direction on
>> how to
>> get started with this.
>
> What about something like:
>
> require "rubygems"
> require "faster_csv"
>
> users = FCSV.open("csvs/Users.csv")
> addresses = FCSV.open("csvs/Addresses.csv")
> joined = FCSV.open("csvs/temp.csv", "w")
>
> while (user = users.gets) and (address = addresses.gets)
> joined << user.fields + address.fields
> end
>
> [users, addresses, joined].map { |csv| csv.close }
>
> __END__
>
> Hope that helps.
>
> James Edward Gray II


That helps immensely.

Thank you for your quick response...
I have just started using fastercsv as opposed to the built-in csv ...

I have a lot yet to do with this, but that gets me started.


--
Posted via http://www.ruby-....