Advertisement
Guest User

Untitled

a guest
May 10th, 2017
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 1.83 KB | None | 0 0
  1. require 'csv'
  2. require 'rubygems'
  3. require 'mysql'
  4.  
  5. # Kleines Programm um o2-rechnungs-csv-files in DB zu importieren.....
  6. # sucht nach allen CSV.txt files im gleichen Verzeichnis und laedt diese in die vorher angelegte Datenbank hoch
  7. # Quick'n dirty!! have fun! 09-01-05-cg
  8.  
  9. host=
  10. user=
  11. pass=
  12. db=
  13.  
  14. @connector = Mysql.real_connect(host,user,pass,db)
  15.  
  16. def putToDatabase(file)
  17.   puts file
  18.   CSV.open(file, 'r', '|') do |row|
  19.     begin
  20.       row[22] = 0.to_s if row[22]==nil
  21.       query = "REPLACE INTO billing (tabellentyp, kontonr, rechnungsnr, mobilfunknr, festnetznr, \
  22.                                     rvnr, marke, tarif, tarifgruppe, feld1, \
  23.                                     feld2, feld3, feld4, datum, uhrzeit, \
  24.                                     rufnummer, dauer, betrag, ursprung, zielort, \
  25.                                     art, dienst, datenvol, preisklasse, anzahl, typ)  \
  26.               VALUES (#{row[0]}, #{row[1]}, #{row[2]}, '#{row[3]}', '#{row[4]}', \
  27.                '#{row[5]}','#{row[6]}', '#{row[7]}', '#{row[8]}', '#{row[9]}', \
  28.                '#{row[10]}', '#{row[11]}', '#{row[12]}', '#{row[13][6..12].to_s+"-"+row[13][3..4].to_s + "-"+row[13][0..1].to_s}', '#{row[14]}', \
  29.                '#{row[15]}','#{row[16]}', #{row[17].gsub(',','.')}, '#{row[18]}', '#{row[19]}', \
  30.                '#{row[20]}', '#{row[21]}',#{row[22].gsub(' KB','000').gsub(' MB','000000')}, '#{row[23]}', '#{row[24]}', \
  31.                '#{row[25]}');" if row[0] != 'TABELLENTYP'    
  32.       res = @connector.query(query) if query != nil
  33.     rescue NoMethodError
  34.       puts "#{file}: #{row}. Konnte nicht eingelesen werden!"    
  35.     rescue StandardError
  36.       puts "#{file}: #{row}. MySQL-Error!"
  37.     end
  38.  
  39.   end
  40. end
  41.  
  42.  
  43. Dir.open('.').each do |file|
  44.   putToDatabase(file) if File.file?(file) && file =~ /CSV\.txt$/
  45. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement