Среди прикладных задач, с которыми сталкивается если не программист, то уже продвинутый пользователь, импорт данных из одного приложения в другое встречается не так уж редко. И довольно часто приходится импортировать табличные данные, для чего, собственно, и был придуман формат CSV. Сейчас разработано уже несколько альтернативных решений (лидирует среди них XML). Но создание файла CSV в некоторых случаях остается самым удобным решением, а некоторых – самым проблематичным.
Расшифровывается название формата как commaseparatedvalues – разделенные запятыми значения. В Блокноте файл выглядит следующим образом:
00, 01, 02, 03-
01, 15, 34, 11-
16, 27, 33, 06 (в самом конце знак ставить не обязательно)
А в таблице Excel или похожего приложения уже так:
00 | 01 | 02 | 03 |
01 | 15 | 34 | 11 |
16 | 27 | 33 | 06 |
Но сейчас мы разобрали самый простой случай. Проблемы начинаются как раз из-за того, что благодаря очень сжатому представлению данных, CSV формат используется для передачи больших объемов информации. Чаще всего в базах встречаются разнородные значения: цифровые, буквенные, цифро-буквенные, с пробелами и т.д. Нередко в больших массивах встречаются ошибки, и если, например, где-то появится лишняя запятая внутри содержимого одного из полей, все ячейки могут сместиться на одну.
Вообще, проблемы, возникающие при импорте данных через формат файла CSV, можно разделить на три категории:
1 – Некорректное заполнение полей.
Видео: Как самому обрезать sim-карту под Micro или Nano SIM
2 – Неправильное преобразование данных при сохранении файла в CSV.
3 – Неправильное распознавание формата программой-импортером.
Первый случай мы уже частично рассмотрели. Чтобы бороться с проблемой, необходимо предусмотреть средства контроля правильности вводимых данных. Например, если вам необходимо собрать базу данных адресов для почтовой рассылки, существуют специальные скрипты, которые проверяют, ввел ли человек свой e-mail в нужном формате. Там, где есть пробелы, запятые и любые другие данные, которые могут считываться неверно, содержимое поля необходимо заключить в кавычки (так называемые компьютерные &ldquo- &rdquo-).
Второй случай связан с выбором кодировки. Необходимо выяснить, зачастую опытным путем, какую кодировку предпочтет программа-импортер. В Windows повсеместно применяется 1251, поэтому если в исходном файле встретится текст в Unicode, он будет отображаться в приложении-получателе как цепочки вопросов. В Excel есть возможность сохранять в формат CSV с различной кодировкой и разделителями (кроме запятой еще используется табуляция и точка с запятой), но лучше всего создавать файл в Notepad++ или OpenOfficeCalc.
Видео: Fraps - как записать игровое видео (настройка программы)
Третий случай – следствие второго. Исторически сложилось, что формат CSV не имеет единого стандарта. Многие программы воспринимают как CSV также файлы форматов TSV (разделение табуляцией) и SCSV (разделение точкой с запятой), в частности потому, что расширение файла об этом не сообщает. При этом данные считываются ошибочно и не распределяются по ячейкам в нужном порядке. Лучшее, что можно посоветовать – создавать CSV файл собственноручно. Как уже говорилось, для этого нужно воспользоваться удобным редактором.
Хитрости того, как укротить формат CSV, известны программистам. Простому пользователю достаточно придерживаться наших рекомендаций относительно создания файла. Меньше всего проблем возникает тогда, когда файл создается специально для импорта в определенное приложение (бывает и по-другому). Так проще учесть все возможные проблемы, возникающие на пути передачи данных.