代码之家  ›  专栏  ›  技术社区  ›  Mick

当命令行输出被用于进一步处理时,它的好格式是什么?

  •  1
  • Mick  · 技术社区  · 15 年前

    我已经用Delphi编写了一个控制台应用程序,它从几个位置查询信息。此应用程序将由另一个进程启动,并由启动进程捕获到stdout的输出。

    我正在检索的信息将由调用应用程序解释,以便进行报告。将这些数据输出到stdout以便易于解析的最佳方法是什么?杰森?XML?CSV?具体来说,这些数据是远程工作站信息,因此它将把运行进程以及每个进程的详细信息拉回来。

    是否有人对此有任何经验或建议?

    4 回复  |  直到 15 年前
        1
  •  6
  •   Mason Wheeler    15 年前

    如果您想要一些易于解析的东西,特别是如果必须快速完成,那么使用最简单的格式,它可以有效地传递您需要的信息。如果可以的话,可以试试json。当然不是XML,除非您出于某种原因真正需要所有额外的复杂性。

        2
  •  5
  •   John Thomas    15 年前

    我想去 标签 -分隔文件, 如果 您的数据(看起来)不包含该字符,因为它允许最快和最简单的处理。 所有其他格式都更慢、更复杂(即使它们给你更多的动力)。

    最接近的匹配是csv,但如果该项包含csv定义的某些特殊字符(空格、逗号、引号等),csv需要引用该项。

    由于上述原因,以制表符分隔的格式是最紧凑的格式,因此它在导线上的速度最快。(既然你在说 遥远的 工作站我假设你在某种网络上)。

    另外,另一件值得一提的事情是,制表符分隔的格式非常可读,因此,如果需要的话,调试更加容易。

    作为旁白,如果数据流中存在制表符,则可以选择另一个您确信不存在的字符。(例如1等)。当然,如果您的使用场景允许的话。

    高温高压

        3
  •  0
  •   Zoë Peterson RRUZ    15 年前

    这完全取决于发射过程的可用性。如果是一个小型的Delphi应用程序,csv很容易用tstringlist进行解析。XML可能比JSON更重,但Delphi附带了一个XML解析器和Afaik,而不是JSON解析器。

        4
  •  0
  •   mjn anonym    15 年前

    XML输出格式的优点是,可以将其传输到 XSL 格式化程序,以便将XML数据转换为用户友好的HTML文档。(几乎可以) have the cake and eat it too )