From: Lars Zeb Date: 2008-01-30T09:20:08+09:00 Subject: Re: newbie file write problem Sorry, I can't do it in 20 lines, but it's very simple. The class: class SicCode def initialize(line) split_to_columns(line) end def split_to_columns(line) a = line.split(/\s+/) @sic = a[0] @descr = a.last(a.length - 1 ).join(" ") end def get_sic @sic end def get_descr @descr end def get_sql puts %Q{IF EXISTS (SELECT * FROM Sic WHERE Code = '#@sic') BEGIN UPDATE Sic SET Descr = '#@descr' WHERE Code = '#@sic' END ELSE BEGIN INSERT INTO Sic SELECT '#@sic', '#@descr', getdate() END } end end Input file(small.txt): 3291 ABRASIVE PRODUCTS 6321 ACCIDENT AND HEALTH INSURANCE 8720 ACCOUNTING, AUDITING, & BOOKKEEPING Run this script: irb(main):175:0> f = File.new("text.txt", "w") => # irb(main):176:0> File.open("small.txt").each { irb(main):177:1* |line| irb(main):178:1* s = SicCode.new(line).get_sql irb(main):179:1> f.puts s irb(main):180:1> } IF EXISTS (SELECT * FROM Sic WHERE Code = '3291') BEGIN UPDATE Sic SET Descr = 'ABRASIVE PRODUCTS' WHERE Code = '3291' END ELSE BEGIN INSERT INTO Sic SELECT '3291', 'ABRASIVE PRODUCTS', getdate() END IF EXISTS (SELECT * FROM Sic WHERE Code = '6321') BEGIN UPDATE Sic SET Descr = 'ACCIDENT AND HEALTH INSURANCE' WHERE Code = '6321' END ELSE BEGIN INSERT INTO Sic SELECT '6321', 'ACCIDENT AND HEALTH INSURANCE', getdate() END IF EXISTS (SELECT * FROM Sic WHERE Code = '8720') BEGIN UPDATE Sic SET Descr = 'ACCOUNTING, AUDITING, & BOOKKEEPING' WHERE Code = '8720' END ELSE BEGIN INSERT INTO Sic SELECT '8720', 'ACCOUNTING, AUDITING, & BOOKKEEPING', getdate() END Output file, text.txt, is empty (0 bytes).