Improves handling of non-fiction classification data.
[quanlib.git] / classify / fastset.rb
index fa3883ef65d5aa763d9a17dae7385815fda2e904..0d97aeb1ec8c32087b13e46193b997ede4a55d4b 100644 (file)
@@ -34,24 +34,26 @@ class FastSet
       return 
     end
 
-    File.open(file_name, 'r:UTF-8').each_line do |line|
-      cols = line.split(/,/)
-      if first
-        first = false
-      elsif cols.length > 1
-        id = cols[0]
-        descr = cols[1]
-        @entries[id] = descr
+    first = true
+    CSV.open(file_name, 'r:UTF-8') do |csv|
+      csv.to_a.each do |row|
+        if first
+          first = false
+        elsif row.length >= 2
+          id = row[0]
+          descr = row[1]
+          @entries[id] = descr
+        end
       end
     end
   end
 
   def save(file_name)
-    File.open(file_name, 'w:UTF-8') do |fd|
-      fd.puts('Code,Description')
+    CSV.open(file_name, 'w:UTF-8') do |csv|
+      csv << [ 'Code', 'Description' ]
       
       @entries.keys.sort.each do |key|
-        fd.puts(key.to_s + ',' + @entries[key].to_s)
+        csv << [ key.to_s, @entries[key].to_s ]
       end
     end
   end