CSV - поля без кавычек не допускают \ r или \ n (строка 2)

вы должны использовать TYPE_CLASS_NUMBER .

EDIT:

Как этот ответ

android:inputType="textPassword|number" 

игнорировать textPassword и принимать только номер, но не пароль.

Поэтому вы должны использовать android:inputType="textPassword|number" с android:password="true".

, который кажется единственным решением.

16
задан user984621 18 July 2012 в 19:26
поделиться

2 ответа

Если вам приходится работать с файлами, поступающими из Excel, с символами новой строки в ячейках, есть и решение.

Большим недостатком этого способа является то, что точки с запятой или двойные кавычки в строках не допускаются.

Я предпочитаю идти без точек с запятой

if file.respond_to?(:read)
  csv_contents = file.read
elsif file_data.respond_to?(:path)
  csv_contents = File.read(file.path)
else
  logger.error "Bad file_data: #{file_data.class.name}: #{file_data.inspect}"
  return false
end

result = "string"
csv_contents = csv_contents.force_encoding("iso-8859-1").encode('utf-8') # In my case the files are latin 1...

# Here is the important part (Remove all newlines between quotes):
while !result.nil?
  result = csv_contents.sub!(/(\"[^\;]*)[\n\r]([^\;]*\")/){$1 + ", " + $2}
end

CSV.parse(csv_contents, headers: false, :row_sep => :auto, col_sep: ";") do |row|
  # do whatever
end

Для меня решение отлично работает, если вы имеете дело с большими файлами, у вас могут возникнуть проблемы с ним.

Если вы хотите использовать без кавычек, просто замените точку с запятой в регулярном выражении кавычками.

0
ответ дан Markus Andreas 18 July 2012 в 19:26
поделиться

Другое простое решение для устранения странного форматирования, вызванного Excel, состоит в том, чтобы скопировать и вставить данные в электронную таблицу Google, а затем загрузить их в формате CSV.

-2
ответ дан Steven Yap 18 July 2012 в 19:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: