From: Useko Netsumi Date: 2003-10-08T15:07:47+09:00 Subject: Re: Parsing challenge... this script failed if any of the cell is blank/no-value, e.g: CODE#1^DESCRIPTION^CODE#2^NOTES NN-110^^^some notes NN-111^1st line data 2nd line data 3rd line data^BRT345^another notes NN-112^description of NN-112^BBC23^multiline notes blah blah blah NN-113^info info^MNO12^some notes here "Ara.T.Howard" wrote in message news:Pine.LNX.4.53.0310072218560.32521@eli.fsl.noaa.gov... > On Tue, 7 Oct 2003, Artco News wrote: > > > I thought I ask the scripting guru about the following. > > > > I have a file containing records of data with the following format(first > > column is the label): > > > > CODE#1^DESCRIPTION^CODE#2^NOTES > > NN-110^an info of NN-001^BRY234^some notes > > NN-111^1st line data > > 2nd line data > > 3rd line data^BRT345^another notes > > NN-112^description of NN-112^BBC23^multiline > > notes blah > > blah > > blah > > NN-113^info info^MNO12^some notes here > > > > How do I parse so I can insert them in the database, e.g. MySQL/Access? > > > > Perhaps there are an advanced scripting language can do this easily. > > ruby is one of the more advanced :-) > > ~/eg/ruby > cat ./parse.rb > > #!/usr/bin/env ruby > > txt = <<-txt > CODE#1^DESCRIPTION^CODE#2^NOTES > NN-110^an info of NN-001^BRY234^some notes > NN-111^1st line data > 2nd line data > 3rd line data^BRT345^another notes > NN-112^description of NN-112^BBC23^multiline > notes blah > blah > blah > NN-113^info info^MNO12^some notes here > txt > > > pat = %r{([^^]+)\^([^^]+)\^([^^]+)\^([^^]+)\n}mox > tuples = txt.scan pat > > tuples.map{|tuple| p tuple} > > > ~/eg/ruby > ./parse.rb > > [" CODE#1", "DESCRIPTION", "CODE#2", "NOTES"] > [" NN-110", "an info of NN-001", "BRY234", "some notes"] > [" NN-111", "1st line data\n 2nd line data\n 3rd line data", "BRT345", "another notes"] > [" NN-112", "description of NN-112", "BBC23", "multiline\n notes blah\n blah\n blah"] > [" NN-113", "info info", "MNO12", "some notes here"] > > -a > ==================================== > | Ara Howard > | NOAA Forecast Systems Laboratory > | Information and Technology Services > | Data Systems Group > | R/FST 325 Broadway > | Boulder, CO 80305-3328 > | Email: ahoward@noaa.gov > | Phone: 303-497-7238 > | Fax: 303-497-7259 > | The difference between art and science is that science is what we understand > | well enough to explain to a computer. Art is everything else. > | -- Donald Knuth, "Discover" > | ~ > /bin/sh -c 'for lang in ruby perl; do $lang -e "print \"\x3a\x2d\x29\x0a\""; done' > ====================================