Bhupendra Chaudhari
2009-Jul-13  11:11 UTC
How to manage Tab & Comma separated filds form single text f
Hi,
I am modifying on script. I am using this script to import data form
text-delimited file into PosgresSql database.
I have already setup a code for tab separation but facing problem in
comma separation. In text-delimited file there is foulr field which are
inter related.
first "organization & City" and Second "State &
Country". Where
organization & City are separated with commas ", " and State &
Country.
But when the script will execute it will split the not only tab
separated fields but also as and when he found comma separated field
i.e.organization & City then it will split the Organization & city and
stored it the respected field.
Could anybody please help me in this> I have no such exposure to Ruby. I
have here attached the data_importer.rb file for your reference also
need help here pasted code.
===========================================================      f.read.each do
|l|
        if counter > 0
          tokens = l.split(/\t/).collect{|ss| ss.delete("\"") }
          hn = tokens[0]
          pgn = tokens[1]
          sn = tokens[2]
          pio = tokens[3]
          dio = tokens[4]
          org = tokens[5]
          al1 = tokens[6]
          al2 = tokens[7]
          ci = tokens[8]
          st = tokens[9]
          pc = tokens[10]
          co = tokens[11]
          te = tokens[12]
          fax = tokens[13]
          ew = tokens[14]
          eo = tokens[15]
          wa = tokens[16]
          at1 = tokens[17]
          at2 = tokens[18]
          at3 = tokens[19]
          c1 = tokens[20]
          c2 = tokens[21]
          c3 = tokens[22]
          begin
=====================================
Regards,
Bhupendra
Attachments:
http://www.ruby-forum.com/attachment/3875/data_importer.rb
-- 
Posted via http://www.ruby-forum.com/.
Bhupendra Chaudhari
2009-Jul-13  11:34 UTC
Re: How to manage Tab & Comma separated filds form single text f
Please find more below more hints on what the code is :
===========================================    begin
      f.read.each do |l|
        if counter > 0
          tokens = l.split(/\t/).collect{|ss| ss.delete("\"") }
          #tokens1 = l.split(/, /)
          #tokens2 = l.split(/, /)
          #tokens[5] = l.split(/, /)
          hn = tokens[0]
          pgn = tokens[1]
          sn = tokens[2]
          pio = tokens[3]
          dio = tokens[4]
      #tokens[5] = l.split(/, /)
          org = tokens[5]
          org1 = l.find('', '')
          ci = l[:org1]
          al1 = tokens[6]
          al2 = tokens[7]
          ci = tokens[8]
          st = tokens[9]
          pc = tokens[10]
          co = tokens[11]
          te = tokens[12]
          fax = tokens[13]
          ew = tokens[14]
          eo = tokens[15]
          wa = tokens[16]
          at1 = tokens[17]
          at2 = tokens[18]
          at3 = tokens[19]
          c1 = tokens[20]
          c2 = tokens[21]
          c3 = tokens[22]
          begin
            cn = Contact.find(:first, :conditions => 
["preferred_given_names = ? and surname = ? and (email_work = ? OR 
email_work IS NULL)", pgn, sn, ew])
            found = true
            #found = false
            if ! cn
              found = false
              cn = Contact.new
              cn.honorific = hn
              cn.preferred_given_names = pgn
              cn.surname = sn
              cn.position_in_organisation = pio
              cn.division_in_organisation = dio
              cn.organisation = org
              cn.address_line_1 = al1
              cn.address_line_2 = al2
              cn.city = ci
              cn.state = st
              cn.postal_code_zip = pc
              cn.country = co
              cn.phone = te
              cn.fax = fax
              cn.email_work = ew
              cn.email_other = eo
              cn.web_address = wa
              cn.affiliation_type = at1
              cn.affiliation_type2 = at2
              cn.affiliation_type3 = at3
              cn.created = Time.now
              cn.modified = Time.now
              cn.save
            end
===========================================
Bhupendra Chaudhari wrote:> Hi,
> 
> I am modifying on script. I am using this script to import data form
> text-delimited file into PosgresSql database.
> 
> I have already setup a code for tab separation but facing problem in
> comma separation. In text-delimited file there is foulr field which are
> inter related.
> first "organization & City" and Second "State &
Country". Where
> organization & City are separated with commas ", " and State
& Country.
> But when the script will execute it will split the not only tab
> separated fields but also as and when he found comma separated field
> i.e.organization & City then it will split the Organization & city
and
> stored it the respected field.
> 
> Could anybody please help me in this> I have no such exposure to Ruby. I
> have here attached the data_importer.rb file for your reference also
> need help here pasted code.
> 
> ===========================================================>      
f.read.each do |l|
>         if counter > 0
>           tokens = l.split(/\t/).collect{|ss|
ss.delete("\"") }
>           hn = tokens[0]
>           pgn = tokens[1]
>           sn = tokens[2]
>           pio = tokens[3]
>           dio = tokens[4]
>           org = tokens[5]
>           al1 = tokens[6]
>           al2 = tokens[7]
>           ci = tokens[8]
>           st = tokens[9]
>           pc = tokens[10]
>           co = tokens[11]
>           te = tokens[12]
>           fax = tokens[13]
>           ew = tokens[14]
>           eo = tokens[15]
>           wa = tokens[16]
>           at1 = tokens[17]
>           at2 = tokens[18]
>           at3 = tokens[19]
>           c1 = tokens[20]
>           c2 = tokens[21]
>           c3 = tokens[22]
> 
>           begin
> =====================================> 
> 
> 
> Regards,
> 
> Bhupendra
-- 
Posted via http://www.ruby-forum.com/.