Что такое хороший формат для вывода из командной строки, когда он используется для дальнейшей обработки? - PullRequest
1 голос
/ 20 апреля 2010

Я написал консольное приложение на Delphi, которое запрашивает информацию из нескольких мест. Это приложение будет запущено другим процессом, а вывод в STDOUT будет захвачен процессом запуска.

Информация, которую я получаю, должна интерпретироваться вызывающим приложением для целей отчетности. Каков наилучший способ вывода этих данных в STDOUT, чтобы их можно было легко проанализировать? JSON? XML? CSV? Данные, в частности, представляют собой информацию об удаленной рабочей станции, поэтому они возвращают информацию о запущенных процессах и подробности о каждом процессе.

У кого-нибудь есть опыт с этим или предложения?

Ответы [ 4 ]

6 голосов
/ 20 апреля 2010

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

5 голосов
/ 20 апреля 2010

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

Наиболее близким совпадением является CSV, но CSV необходимо заключить в кавычки элемент, если элемент содержит некоторые специальные символы, определенные CSV (пробел, запятая, кавычки и т. Д.).

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

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

Кроме того, если в вашем потоке данных присутствует символ Tab, вы можете выбрать другой символ, который, как вы уверены, не может быть. (Например # 1 и т. Д.). Конечно, это если ваш сценарий использования это позволяет.

НТН

0 голосов
/ 21 апреля 2010

Преимущество формата вывода XML заключается в том, что вы можете передать его в формататор XSL , чтобы данные XML могли быть преобразованы в удобный HTML-документ. (Вы можете почти получить торт и съесть его тоже ) ...

0 голосов
/ 20 апреля 2010

Это будет полностью зависеть от того, что доступно в процессе запуска. Если это маленькое приложение Delphi, CSV легко разобрать, просто используя TStringList. XML может иметь больший вес, чем JSON, но Delphi поставляется с парсером XML, а AFAIK - не парсером JSON.

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