Самый неконфронтационный разделитель для моих текстовых файлов? - PullRequest
0 голосов
/ 21 декабря 2009

Я сохраняю все свои заметки в файле журнала. Каждая строка представляет собой заметку с суффиксом тегов и префиксом маркера даты и времени, который в настоящее время выглядит следующим образом: [12.20.09:22.22] ([date:time].

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

Я беспокоюсь о [ ] s, хотя. Могут ли они отключить какой-нибудь код анализа (чужой, если не мой)? Что будет самым неконфронтационным маркером?

Ответы [ 6 ]

5 голосов
/ 21 декабря 2009

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

В итоге, основной формат:

yyyy-mm-dd hh:mm:ss

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

С датой / временем в этом формате нет никакой путаницы в том, какой месяц и день. И у него есть бонус сортировки с использованием базовой сортировки строк.

2 голосов
/ 21 декабря 2009

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

Я согласен с Джереми МакГи: XML - отличный выбор. Даже если никакие другие данные не существуют, они должны быть в формате:

<note>
   <datetime>
      <year>
         2009
      </year>
      <month>
         12
      </month>
  . . .
   </datetime>
   <message>
      Foo bar baz quox
   </message>
<note>

не может быть неправильно понято.

2 голосов
/ 21 декабря 2009

Я бы рассмотрел использование XML или JSON в качестве формата для файла.

В частности, ваш маркер даты / времени неоднозначен. Это мм / дд / гг или дд / мм / гг? Или даже гг / мм / дд? И в каком часовом поясе дата и время?

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

XML-формат даты и времени определен здесь : например, 2000-01-12T12: 13: 14Z.

Формат даты и времени в формате JSON определяется как количество секунд с 1 января 1970 года , поэтому оно немного страшнее: {currentDate: "@ 1163531522089 @"}

1 голос
/ 21 декабря 2009

Это зависит от ваших данных. Однако, если вы избежите их с помощью специального символа некоторого вида (например, \]) и кода, соответственно, чтобы посмотреть на предыдущий символ при поиске «[» или «]», у вас не должно возникнуть проблем.

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

0 голосов
/ 21 декабря 2009

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

0 голосов
/ 21 декабря 2009

Использование '[]' в качестве маркеров будет в порядке, если вы дадите DSL возможность экранировать символов. Это типично для операций с текстом, которые требуют анализа.

В качестве примера посмотрите типичный синтаксис регулярного выражения, который включает «/» в качестве разделителя, в то же время позволяя пользователю указывать escape-символ, такой как «\». Вы можете получить больше идей от таких инструментов Unix, как; awk , sed и grep

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...