Ошибка FasterCSV /Library/Ruby/Gems/1.8/gems/fastercsv-1.5.4/lib/faster_csv.rb:1641:in `shift ' - PullRequest
0 голосов
/ 22 октября 2011

Новичок на ruby, это мой первый проект, я использую FasterCSV Gem и очень люблю скорость.

Я обнаружил одну проблему: если поле слишком длинное, оно выдает ошибку ниже:

/ Библиотека / Ruby / Gems / 1.8 / gems / fastcsv-1.5.4 / lib / rapid_csv.rb: 1641: в `shift ': FasterCSV :: MalformedCSVError (FasterCSV :: MalformedCSVError)

Ошибка во второй строке. Первая строка читается правильно :-)

«1013197145», «PSION HU6020 Hand Strap», «1», «1», «10»

"1013197542", "HP ProBook NA920EA_KT931AT Ноутбук 39,6 см (15,6") - Intel Core 2 Duo T6570 2,10 ГГц - 1366 x 768 WXGA-дисплей - 2 ГБ ОЗУ - 250 ГБ HDD - DVD-привод LightScribe - Intel GMA 4500MHD Graphics Карта - Bluetooth - Веб-камера - Подлинная Windows Vista Business - 5-часовая батарея - HDMI "," 1 "," 1 "," 10 "

вот мой код:

FasterCSV.foreach(file_path, {:col_sep=> colsep, :quote_char => char}) do |row|

   my.query("INSERT INTO product_prices (partno,costpriceexvat,sku, supplierid) VALUES ('#{row[7]}', '#{row[8]}', '#{row[3]}','1')")

end

любая помощь будет высоко ценится.

1 Ответ

1 голос
/ 22 октября 2011

Я подозреваю, что это никак не связано с тем, что FasterCSV задыхается от длинных струн, и с символом дюйма в части (15.6 ") вашего описания элемента - так как он идентичен кавычке, он завершает значение CSV , таким образом, создавая неправильную линию CSV. FasterCSV разработан, чтобы быть строгим в отношении подобных вещей.

...