Какой формат файла я должен использовать для своего приложения? - PullRequest
0 голосов
/ 12 мая 2010

Я пишу приложение, которое управляет списками задач. В отличие от «традиционных» приложений списков задач, я хочу, чтобы пользователи хранили эти файлы списков задач в своей файловой системе и были видны, а не были волшебно скрыты приложением. Я хочу, чтобы пользователи могли отправлять друг другу списки задач и так далее. Кроме того, позже я намереваюсь создать веб-приложение с базой данных базы данных, которое позволит пользователям совместно работать над списками задач.

Вопрос, который у меня возникает, - какой формат файла я должен использовать для хранения локальных файлов моего приложения? Когда я начал думать об этом, первое, что пришло в голову, было XML , потому что оно (несколько) читабельно, но потом я подумал о sqlite , а затем узнал о YAML и теперь я в замешательстве. Некоторое руководство будет оценено.

Обновление:

Я должен упомянуть, что, скорее всего, я буду кодировать это на C ++, Objective C или (хотя и не очень) на Python. Поэтому, какой бы формат ни предлагался, ему нужны соответствующие библиотеки.

Обновление 2:

Я также обеспокоен возможностью связать все эти различные форматы с моими приложениями, поэтому, когда открывается файл моего формата приложения, мое приложение открывается вместо чего-то вроде текстового редактора.

Ответы [ 5 ]

2 голосов
/ 12 мая 2010

Другая альтернатива, особенно если вы хотите иметь возможность встраивать другой контент в ваши документы, например изображения, - это использовать формат файла упаковки.Преимущество заключается в том, что пользователям нужно будет отправлять только один файл, в который встроен весь контент.Другое преимущество состоит в том, что большие структуры XML могут быть хорошо сжаты.

Примерами таких форматов являются ODF (формат OpenDocument), в котором используется zip-пакет, содержащий файл манифеста, или Office OpenXML, в котором используется OPC (Open PackagingУсловности) контейнер.Оба формата стандартизированы ISO.

2 голосов
/ 12 мая 2010

Я большой поклонник использования баз данных SQLite в качестве файлов документов (дает вам структуру, хороший инструмент анализа, транзакции и т. Д.);но если вы хотите, чтобы пользователь просто взял документ и отправил его по электронной почте, надежный текстовый формат был бы намного лучше.

Возможен XML;но это слишком многословно и безобразно.YAML намного более читабелен, он может выглядеть как файл .INI, но с большей структурой.JSON - это промежуточное звено, не столь удобное для чтения, как YAML, и не такое уродливое, как XML.

Все три формата могут принимать любую произвольную структуру, создавать текстовое представление и восстанавливать структуру из нее, поэтому они функциональноэквивалент.

Основным преимуществом XML, по-видимому, является то, что его легко обнаружить, когда он был случайно поврежден, поскольку он больше не будет правильно сформированным документом.Но нетрудно добавить контрольные суммы или аналогичные поля в любой формат.

0 голосов
/ 12 мая 2010

Если вы хотите, чтобы пользователи могли редактировать файлы как текст, то любой из текстовых форматов должен быть в порядке, и это скорее вопрос предпочтений, чем что-либо еще.

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

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

0 голосов
/ 12 мая 2010

Я бы сказал XML, но даже когда я предлагаю это, у меня возникает ощущение, что, поскольку вы задали этот вопрос, я рекомендую вам получить книгу по программированию на эту тему и начать читать .... Это для школьного проекта

0 голосов
/ 12 мая 2010

Как насчет использования sqlite в вашем приложении и добавления функции экспорта / импорта, которая бы экспортировала / импортировала эти списки в xml?

...